【发布时间】:2012-06-17 13:07:36
【问题描述】:
当我使用 DataContact/DataMember 属性公开 WCF 服务时,我在其他项目中对该服务所做的每个服务引用都会生成具有 DataContract/DataMember 属性的类(以及 IExtensibleDataObject 接口实现等)。
在另一个项目中,我必须使用一个 SOAP 服务,它的 WSDL 不是由 WCF 生成的,而是由其他一些我不知道且无法更改行为的工具生成的。
我的问题是我的 svcutil 代理生成的代码不太灵活:
- 类使用 Serializable 属性而不是 DataContract(GeneratedCode 属性指定使用 System.Xml 而不是 System.Runtime.Serialization)
- IExtensibleDataObject 未实现
- 未使用可选字段属性
- XmlElement 的顺序是固定的,当新的 xs:element 插入到 wsdl xs:sequence 的中间时会导致反序列化失败...
在我使用的 svcutil 工具/wsdl 中发生了什么,它必须以这种方式生成代码?
【问题讨论】:
标签: wcf serialization wsdl datacontract svcutil.exe