繁体   English   中英

实现IXmlSerializable的WCF词典

[英]WCF Dictionary implementing IXmlSerializable

我有一些使用默认DataContractSerialization的WCF服务。 一些服务方法返回Dictionary对象。 其中一个客户端正在从WCF服务(与biztalk相关)生成XSD文件,并且他正在请求将所有词典类型转换为实现IXmlSerializable的新词典类型。 我想知道这种转换是否会出现任何意外的结果,从而可能以某种方式影响DataContract的序列化?

更新:服务器和客户端共享相同的域dll,客户端不会从服务生成它们。 也许在这个问题上,我没有提到要点。 我想知道是否要通过数据合同序列化来序列化对象,在对象中实现IXmlSerializable会引起任何问题。

有一个意想不到的问题。 由于域对象已经在实现数据协定序列化,因此如果不修改整个序列化机制就无法实现IXmlSerializable。

您的客户端与服务共享dll吗?

除非他与服务共享库(dll),否则在服务端进行更改不会有任何区别。 您的WCF正在返回数据,而不是类。 该数据将重构为由客户端根据您的服务返回的WSDL中的定义创建的类。 除非您在客户端和服务器之间共享dll,否则您将无法控制这些生成的库(通过在服务器上进行更改)。

如果他想将生成的字典包装在IXmlSerializable字典中,那么他可以,或者如果他想生成其他类型的字典,那么他也可以做​​到这一点,但是我认为您无法在服务器端做任何事情。

告诉您的客户端,当他们需要对服务调用中的字典结果进行序列化时,使用以下可序列化的字典: C#序列化字典–工作示例

它接受普通字典作为构造函数参数,从而将任何字典转换为可序列化的字典。 如果愿意,您还可以返回SerializableDictionary类型作为服务调用结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM