我向类添加了可序列化的属性,但由于这个原因,类属性正在被序列化。
我对所有属性都使用了[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/