![](/img/trans.png)
[英]WCF: “IsRequired” property for DataMember with “IsReference” property for DataContract
[英]Adding a DataMember to an existing DataContract in WCF
我想将DataMember
添加到我的一个DataContract
。 我想知道如果其中一方未更新,现有服务器和客户端将在新DataMember
存在时的行为。
我记得有一种方法可以使DataMember
可选,但我想知道它是否适用于所有场景:
WCF将优雅地处理它无法识别的新成员。 合同的消费者(在客户端或服务器端)根本不会“看到”该成员,因此结果是新成员永远不应该是IsRequired=true
属性。
此外,只要DataContract实现了IExtensibleDataObject
,WCF就会透明地桥接组件之间的新属性。 EG,如果消息路径是:
更新的客户端=>旧服务器=>更新的服务器
然后,链末端的更新服务器仍将看到新的DataMember。 但是,“旧服务器”不会看到新的DataMember。
如果旧服务器向更新的客户端发送消息,则在新客户端中反序列化时,新DataMember将设置为default(type)
。
这里有更多关于DataContract版本控制的最佳实践 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.