【发布时间】:2009-07-13 12:27:46
【问题描述】:
您处于服务的末端,但您不了解您的客户。
为什么你会选择一个而不是另一个?
【问题讨论】:
标签: wcf datacontract
您处于服务的末端,但您不了解您的客户。
为什么你会选择一个而不是另一个?
【问题讨论】:
标签: wcf datacontract
根据经验;当自己设计一个类型时,它应该是一个类,除非该类型表示单个值,在这种情况下它应该是一个结构。
【讨论】:
弗雷德里克有正确的答案。我只会补充一点,您应该记住,客户永远不会看到您的数据合同。它将被翻译成 XML Schema 并包含在 WSDL 中。回想一下,在客户端,它可能是 Perl 甚至是 Classic ASP 客户端——没有值与引用语义的概念。
所以价值与参考只对服务很重要,对客户不重要。
【讨论】:
实际上,John Saunders 并不完全正确。 WCF 生成的 WSDL 确实 表明对象是值类型还是引用类型。当您在客户端拥有 WCF 时,您可以利用这一点。此外,值与引用对 WSDL 各个部分的 isNullable 属性有影响,这会改变语义。
当然,您需要确保自己不会陷入不兼容的角落 - 在某些客户端环境中,可空值类型不一定与引用类型相同(甚至可能)。
【讨论】: