Csharp/C#教程:将Structs与WCF服务一起使用分享


将Structs与WCF服务一起使用

有没有关于使用结构作为WCF服务的返回类型的官方建议?

我目前正在与我没有写的服务进行互动,并发现自己受到启发,要求查看我的烦恼是否合理。

我过去总是使用类 – 可能部分是因为这是样本总是显示的,但正如我现在想的那样,出于其他“直观”的原因:

虽然我承认它比我脑子里的项目符号列表更直观,但是有些东西会马上来找我。 我想问这个问题,因为我正在处理一个返回结构的服务,并且在处理返回值时必须写:

var foo = Bar.Value.MyField; 

代替

 var foo = Bar.Value; 

如果你可以创建一个结构并在其上放置一个[DataContract]属性 – 继续使用它! 对于WCF,这没有什么区别–WCF只要求使用标记有DataContract属性的类或结构,并且要包含在序列化消息中的所有字段都要用[DataMember]属性标记。

如果您检查DataContractAttribute上的MSDN文档,它表明您也可以在结构上使用它:

 [AttributeUsageAttribute(AttributeTargets.Class| AttributeTargets.Struct|AttributeTargets.Enum, Inherited = false, AllowMultiple = false)] public sealed class DataContractAttribute : Attribute 

更新:至于何时使用结构而不是类(通常在.NET中),请在此处查看此SO问题:

我什么时候应该使用结构而不是类?

但是,由于WCF实际上是关于消息传递(即您的客户端进行方法调用,该调用及其参数将转换为序列化消息,该消息通过线路发送,然后在另一端重新组装并转回方法我没有看到使用struct任何令人信服的理由。

一般.NET的所有好处并不真正适用于WCF的SOA世界,我会说(你不会传递类或结构实例 – 见上文)。

上述就是C#学习教程:将Structs与WCF服务一起使用分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/961226.html

(0)
上一篇 2021年11月25日
下一篇 2021年11月25日

精彩推荐