防止类属性被序列化

时间:2017-11-07 09:50:45

标签: c# xml

我向class添加了属性serializable,但由于这个原因,class属性被序列化了。

我将$("#testTable tr").each(function() { firsttd += $(this).find("td:first").html() + "\n"; }); 用于所有属性,但它仍在序列化属性

td

它的序列化如下标记 -

[XmlIgnore]

4 个答案:

答案 0 :(得分:3)

如果您使用的是the [Serializable] attribute,则需要对您不希望序列化的任何成员(公共或私人)使用[NonSerialized]属性。

当使用[DataMember]属性标记类时使用

[DataContract],并且当您在类上明确使用XmlSerialiser时使用[XmlIgnore]

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

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

答案 1 :(得分:0)

答案 2 :(得分:0)

尝试[JsonIgnore][IgnoreDataMember]属性,这对您有帮助。

答案 3 :(得分:0)

如果您使用“开箱即用”配置的WCF,您可能正在使用DataContractSerializer来序列化邮件,而不是XmlSerializer

为了让合同类的成员不被序列化,您可以使用IgnoredDataMember属性来装饰它们:

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

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