How can I ignore a property when serializing using the DataContractSerializer?

后端 未结 5 1281
你的背包
你的背包 2020-11-27 14:18

I am using .NET 3.5SP1 and DataContractSerializer to serialize a class. In SP1, they changed the behavior so that you don\'t have to include DataContract

相关标签:
5条回答
  • 2020-11-27 14:46

    In XML Serializing, you can use the [XmlIgnore] attribute (System.Xml.Serialization.XmlIgnoreAttribute) to ignore a property when serializing a class.

    This may be of use to you (Or it just may be of use to anyone who found this question when attempting to find out how to ignore a property when Serializing in XML, as I was).

    0 讨论(0)
  • 2020-11-27 14:51

    What you are saying is in conflict with what it says in the MSDN library at this location:

    http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractserializer.aspx

    I don't see any mention of the SP1 feature you mention.

    0 讨论(0)
  • 2020-11-27 14:53

    Additionally, DataContractSerializer will serialize items marked as [Serializable] and will also serialize unmarked types in .NET 3.5 SP1 and later, to allow support for serializing anonymous types.

    So, it depends on how you've decorated your class as to how to keep a member from serializing:

    • If you used [DataContract], then remove the [DataMember] for the property.
    • If you used [Serializable], then add [NonSerialized] in front of the field for the property.
    • If you haven't decorated your class, then you should add [IgnoreDataMember] to the property.
    0 讨论(0)
  • 2020-11-27 14:55

    Try marking the field with [NonSerialized()] attribute. This will tell the serializer to ignore the field.

    https://msdn.microsoft.com/en-us/library/system.nonserializedattribute(v=vs.110).aspx

    0 讨论(0)
  • 2020-11-27 14:56

    You might be looking for IgnoreDataMemberAttribute.

    0 讨论(0)
提交回复
热议问题