c# - 如何删除 XML 数据中的 k__BackingField

标签 c# xml wcf

我正在从服务接收 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/

相关文章:

php - 如何使用php从XML文件中读取数据

WCF MSMQ 单元测试

c# - 如何在不触及源代码文件 (Global.asax.cs) 的情况下从 header 响应中删除 X-AspNetMvc-Version?

C# postback dropdownlist 总是选择第一个值

c# - 如何创建一次性类

java - 如何为具有 Webmethod 模式命名空间的 xml 创建 xsd

c# - 针对接口(interface)和 Entity Framework 4.0 进行编程

javascript - 在没有可用 Web 服务器的情况下将 XML 本地加载到 JavaScript 中?

c# - 具有多个参数的 WCF Rest GET

c# - IIS 中的 WCF NetTcpBinding