2011-09-03 112 views
1

我无法理解这是情况:为什么我需要设置IsRequired如果它来自课堂?

主机已经拥有例如手术方法 Calc (Myclass a)

MyClass包含2个属性(prop1prop2

现在的服务,客户也应通过代理了解MyClass,并应通过参考了解合同情况。

因此,当客户端创建MyClass的新实例(发送它) - 如何可以丢失一个道具 ???

当他实例化新的MyClass - 两个道具都初始化(null或什么都没有)。所以为什么我需要isRequired

回答

1

Theres不保证使用哪种语言,或者他们如何制定肥皂请求,因此生成它的方式可能不会使用包含该属性的生成类。需要要求是存在的消息

相互作用与IsRequired

在作为数据协定版本所讨论的,DataMemberAttribute属性具有IsRequired属性(默认为假)。该属性指示给定数据成员在被序列化时是否必须出现在序列化数据中。如果将IsRequired设置为true(表示必须存在一个值)并将EmitDefaultValue设置为false(表示该值如果设置为其默认值,则该值不得存在),则此数据成员的默认值不能为序列化,因为结果将是矛盾的。如果将此类数据成员设置为其默认值(通常为null或零)并尝试序列化,则会引发SerializationException。

+0

因此,如果用户实例化具有空属性值的MyCLass - 这将导致异常? –

+0

http://msdn.microsoft.com/zh-cn/library/aa347792.aspx根据此页 – kmcc049

+0

其不完全空值,它阻止,但在传入的soap数据包中不存在。 – kmcc049

相关问题