【发布时间】:2011-09-08 12:46:02
【问题描述】:
我有 2 个服务参考 (WCF)。
- 第一个 Visual Studio 使用 DataContractSerializer 生成代码
- 第二个,Visual Studio 使用 XmlSerializer 生成代码
我无法更改网络服务器端的任何内容。
所以我正在创建一个从两个引用聚合对象的对象。
如何序列化此对象,使其遵守 DataContractSerializer 和 XmlSerializer 的序列化规范。 如果我使用 DataContractSerializer,我会将参考 2 中的每个字段都像这样序列化
<dataField>
而不是
<data>
因为它默认只序列化私有字段 (??)
如果我使用 XmlSerializer,我的参考文献 2 中的每个字符串数组都会像这样被序列化
<myArray>
<string>test</string>
<string>test</string>
</myArray>
而不是
<myArray>
<url>test</url>
<url>test</url>
</myArray>
因为它忽略了 CollectionDataContractAttribute 属性,该属性指定如何序列化数组中的每个项目。
那么你的解决方案是什么?
我的第一个解决方案是将所有这些都添加为良好的网络参考,但也许有一些不错的解决方案。
编辑:
这是来自 1/ web 服务的类型声明(datcontract,wcf 样式)
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="productInformations", Namespace="http://abcedf.net/")]
[System.SerializableAttribute()]
public partial class productInformations : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
【问题讨论】:
-
所以我决定删除我的 wcf 参考并添加一些 Web 服务参考,但我仍在寻找答案。
标签: .net wcf web-services xml-serialization