WCF DataContracts应该是值还是引用类型?

时间:2009-07-13 12:27:47

标签: wcf datacontract

你正处于服务终端,你不了解你的客户。

为什么你会选择一个而不是另一个?

3 个答案:

答案 0 :(得分:9)

根据经验;在自己设计类型时,它应该是一个类,除非类型表示单个值,在这种情况下它应该是一个结构。

答案 1 :(得分:4)

弗雷德里克有正确的答案。我只想补充一点,你应该记住,客户永远不会看到你的数据合同。它将被翻译成XML Schema,并将包含在WSDL中。在客户端,回想一下,它可能是Perl甚至是经典的ASP客户端 - 没有价值概念和参考语义的东西。

因此,价值与参考仅对服务有关 - 而不是对客户而言。

答案 2 :(得分:0)

实际上,约翰桑德斯并不完全正确。 WCF生成的WSDL 确实指示对象是值还是引用类型。当您在客户端使用WCF时,您可以利用此功能。此外,value vs reference会影响WSDL各个部分的isNullable属性,这可能会改变语义。

当然,您需要确保不要将自己描绘成不兼容的角落 - 在某些客户端环境中,可空值类型不一定与引用类型(甚至可能)相同。