我创建了一个 .NET 4.0 WCF Web 服务并将其放在我们的内部服务器上。
现在,我正在使用一个查询 Web 服务的简单项目对此进行测试。
但是,我发现我的所有属性名称都附加了k_BackingField字符串。
[System.Runtime.Serialization.DataMemberAttribute(Name="<WoNumber>k__BackingField", IsRequired=true)]
public string WoNumberk__BackingField {
get {
return this.WoNumberk__BackingFieldField;
}
set {
if ((object.ReferenceEquals(this.WoNumberk__BackingFieldField, value) != true)) {
this.WoNumberk__BackingFieldField = value;
this.RaisePropertyChanged("WoNumberk__BackingField");
}
}
}
我对这个k_BackingField参数进行了搜索,发现这个链接是我最好的参考:
显然,我以某种方式使用了XmlSerializer而不是DataContractSerializer。
我似乎找不到的是如何“撤消” XmlSerialization并启用DataContractSerializer。
在我的项目中,我尝试在整个项目中搜索以下 XML 关键字,但它们似乎没有出现:
- XmlSerializerFormat
- System.Xml.序列化
- XmlSerialzer
有谁知道如何删除XmlSerialization然后使用DataContractSerializer重新添加我的服务引用?
或者,是否需要修改我的 WCF 服务以公开我想要的序列化程序?