c# - 防止类属性被序列化

标签 c# xml

我向类添加了可序列化的属性,但由于这个原因,类属性正在被序列化。

我对所有属性都使用了[XmlIgnore],但它仍然在序列化属性

[Serializable]
public class Document
{

    [DataMember]
    [XmlIgnore]
    public string FileURL { get; set; }

    [DataMember]
    [XmlIgnore]
    public string FileSize { get; set; }       

}

它的序列化如下标签-

<a:_x003C_DocumentDetails_x003E_k__BackingField>
  <a:Document>                  
    <a:_x003C_FileType_x003E_k__BackingField>PDF</a:_x003C_FileType_x003E_k__BackingField>
    <a:_x003C_FileURL_x003E_k__BackingField>C:/log/Test.pdf</a:_x003C_FileURL_x003E_k__BackingField>                    
  </a:Document>
</a:_x003C_DocumentDetails_x003E_k__BackingField>

最佳答案

如果您使用 the [Serializable] attribute ,您需要对任何不想序列化的成员(公共(public)或私有(private))使用 [NonSerialized] 属性。

[DataMember] 在类用 [DataContract] 属性标记时使用,而在您明确指定时使用 [XmlIgnore]在类上使用 XmlSerialiser。

[Serializable]
public class Document {
  [NonSerialized]
  public string FileURL { get; set; }

  [NonSerialized]
  public string FileSize { get; set; }
}

关于c# - 防止类属性被序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47154690/

相关文章:

c# - C# 中的日期时间比较

c# - 将 UserControl 添加到 WPF DataGrid 单元格

javascript - TypeError : Value undefined (result of expression xmlDoc. 加载)不是对象

C#:WPF 数据网格和 xml 文件

c# - 从 C# 程序集中执行 JavaScript

c# - 将通用列表值复制到另一个通用列表

c# - 我怎样才能在图片框中绘制一个在边缘标记的多边形

php - 如何处理通过 POST 发送的 XML?

java - 将表示 XML 的 Java 对象序列化为其 XML 形式是否合适?

java - 线性布局发现意外的命名空间前缀 "xmlns"