如何在反序列化时从json中删除k__BackingField?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (16)

将xml文件序列化为.net c#对象后,我得到返回的json中的k_BackingField。

我已经将DataContract和DataMember属性添加到.net c#对象,但是在json,客户端上我什么也没有得到。

[XmlRoot("person")]
[Serializable]
public class LinkedIn
{
    [XmlElement("id")]
    public string ID { get; set; }

    [XmlElement("industry")]
    public string Industry { get; set; }

    [XmlElement("first-name")]
    public string FirstName { get; set; }

    [XmlElement("last-name")]
    public string LastName { get; set; }
    [XmlElement("headline")]
}

返回的json的例子:

home: Object
<FirstName>k__BackingField: "Storefront"
<LastName>k__BackingField: "Doors"
提问于
用户回答回答于

如果可以在序列化中使用类,则实际不建议使用自动属性语法。作为后台字段的原因是由编译器生成的,每次编译代码时都可能不同。这可能会导致不兼容问题,即使没有对类进行更改(仅重新编译代码)。

我认为应用DataMember属性将解决这个问题。但是如果需要在序列化中使用类,我会推荐使用完整的属性语法。

用户回答回答于

扫码关注云+社区