C# 防止序列化类属性
我将属性serializable添加到类中,但由于这个原因,类属性正在序列化 我对所有属性使用了C# 防止序列化类属性,c#,xml,C#,Xml,我将属性serializable添加到类中,但由于这个原因,类属性正在序列化 我对所有属性使用了[XmlIgnore],但它仍在序列化属性 [Serializable] public class Document { [DataMember] [XmlIgnore] public string FileURL { get; set; } [DataMember] [XmlIgnore] public string FileSize { get;
[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>
PDF
C:/log/Test.pdf
您是否根据文档尝试了IgnoreDataMemberAttribute
尝试
[JsonIgnore]
或[IgnoreDataMember]
属性,这将对您有所帮助。如果您正在使用,您需要对任何不希望序列化的成员(公共或私有)使用[NonSerialized]
属性
[DataMember]
用于将类标记为[DataContract]
属性,而[XmlIgnore]
用于在类上显式使用XmlSerialiser
[Serializable]
public class Document {
[NonSerialized]
public string FileURL { get; set; }
[NonSerialized]
public string FileSize { get; set; }
}
如果您使用带有“开箱即用”配置的WCF,那么您可能使用的是
DataContractSerializer
来序列化消息,而不是XmlSerializer
为了使合同类的成员不被序列化,可以使用以下属性对其进行修饰:
[Serializable]
public class Document
{
[DataMember]
public string FileURL { get; set; }
[IgnoredDataMember]
public string FileSize { get; set; }
}
有几种序列化技术(WCF、XMLSerializer)。您能否发布用于序列化代码(和/或技术)的代码,然后我们可以就使用哪个属性向您提供建议。我在考虑WCF,但它不会序列化任何非数据成员的内容。我正在用WCF进行编码。对于序列化,我只添加了这个attributere[Serializable],它正在序列化并提供数据。未编写任何用于序列化的额外代码。将属性设置为私有将阻止序列化。