Я использую .NET 3.5SP1 и DataContractSerializer для сериализации класса. В SP1 они изменили поведение, так что вам не нужно включать атрибуты DataContract / DataMember в класс, и он просто сериализует все это. Это то поведение, которое я использую, но теперь мне нужно игнорировать одно свойство сериализатора. Я знаю, что один из способов сделать это - добавить к классу атрибут DataContract и просто поместить атрибут DataMember на все члены, которые я хочу включить. Однако у меня есть причины, по которым это не сработает.
Итак, мой вопрос: есть ли атрибут или что-то, что я могу использовать, чтобы DataContractSerializer игнорировал свойство?
c#
.net
wcf
serialization
NotDan
источник
источник
[IgnoreDataMember]
не будет работать, если у класса есть[Serializable]
атрибут. Подробности смотрите в ответе Дуга .Кроме того, DataContractSerializer сериализует элементы, помеченные как [Serializable], а также сериализует немаркированные типы в .NET 3.5 SP1 и более поздних версиях, чтобы обеспечить поддержку сериализации анонимных типов.
Итак, это зависит от того, как вы украсили свой класс, чтобы предотвратить сериализацию члена:
[DataContract]
, то удалите[DataMember]
для свойства.[Serializable]
, то добавьте[NonSerialized]
перед полем для свойства.[IgnoreDataMember]
в свойство.источник
В XML-сериализации вы можете использовать атрибут [XmlIgnore] (System.Xml.Serialization.XmlIgnoreAttribute), чтобы игнорировать свойство при сериализации класса.
Это может быть полезно для вас (или просто может быть полезно для всех, кто нашел этот вопрос, пытаясь узнать, как игнорировать свойство при сериализации в XML, как и я).
источник
Попробуйте пометить поле атрибутом [NonSerialized ()]. Это скажет сериализатору игнорировать поле.
https://msdn.microsoft.com/en-us/library/system.nonserializedattribute(v=vs.110).aspx
источник
То, что вы говорите, противоречит тому, что написано в библиотеке MSDN по этому адресу:
http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractserializer.aspx
Я не вижу упоминания о упомянутой вами функции SP1.
источник