我正在收到来自服务的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#删除它?
答案 0 :(得分:5)
不要使用自动属性,使用带有显式私有变量的属性作为后端。如果你没有,那么编译器会创建那些k__BackingField以保存属性值。
唐&#39; T:
public string MyProperty { get; set; }
使用:
private string _myProperty;
public string MyProperty
{
get { return _myProperty; }
set { _myProperty = value; }
}
答案 1 :(得分:0)
您应该向您的班级添加[DataContract]
;
[Serializable, DataContract]
public class TestObject
{
[DataMember]
public Boolean Value { get; set; }
[DataMember]
public String Text{ get; set; }
}
答案 2 :(得分:0)
只需将[DataContract]属性添加到您的班级
答案 3 :(得分:-1)
您可以使用自动属性
public int MyProperty { get; set; }
但您需要将属性添加到类
[Newtonsoft.Json.JsonObject]
public class MyClass
{
public int MyProperty { get; set; }
}