我正在从服务接收 xml 数据,该服务的每个元素中都有“k_BackingField”。
{
"<UserId>k__BackingField": "b5184b32-0d88-49e7-ba98-afbc96e47b7e",
"<Date>k__BackingField": "2016-05-11T13:40:36.6542578+01:00",
"<Resources>k__BackingField": [
{
"<Type>k__BackingField": "Num",
"<Id>k__BackingField": "978000940016736",
"<IsDeleted>k__BackingField": false
}
]
}
我知道当 WCF 服务方法具有 [DataMember][DataContract] 时,它会提供正确的 XML 格式数据,但是当该方法单独使用 [Serializable] 时,它会在每个元素中提供带有 K_BackingField 的 XML 数据。
我将存储这些数据,实际上应该在没有 k__BackingField 的干净 XML 中。 我们如何使用 C# 删除它?
最佳答案
不要使用自动属性,使用带有显式私有(private)变量的属性作为后端。如果你不这样做,那么编译器会创建那些 k__BackingField 来为你保存属性值。
不要:
public string MyProperty { get; set; }
使用:
private string _myProperty;
public string MyProperty
{
get { return _myProperty; }
set { _myProperty = value; }
}
关于c# - 如何删除 XML 数据中的 k__BackingField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37187390/