Do serializacji klasy używam .NET 3.5SP1 i DataContractSerializer. W dodatku SP1 zmienili zachowanie, aby nie trzeba było dołączać atrybutów DataContract / DataMember do klasy i po prostu serializował całość. To jest zachowanie, którego używam, ale teraz muszę zignorować jedną właściwość serializatora. Wiem, że jednym ze sposobów jest dodanie atrybutu DataContract do klasy i po prostu umieszczenie atrybutu DataMember na wszystkich elementach członkowskich, które chcę dołączyć. Mam jednak powody, że to nie zadziała.
Więc moje pytanie brzmi: czy istnieje atrybut lub coś, czego mogę użyć, aby DataContractSerializer ignorował właściwość?
c#
.net
wcf
serialization
NotDan
źródło
źródło
[IgnoreDataMember]
nie zadziała, jeśli klasa ma[Serializable]
atrybut. Zobacz szczegóły w odpowiedzi Douga .Ponadto DataContractSerializer będzie serializować elementy oznaczone jako [Serializable], a także serializować nieoznakowane typy w .NET 3.5 SP1 i nowszych, aby umożliwić obsługę serializacji typów anonimowych.
Zależy to więc od tego, jak udekorowałeś swoją klasę, aby powstrzymać członka przed serializacją:
[DataContract]
, usuń[DataMember]
właściwość.[Serializable]
, dodaj[NonSerialized]
przed polem właściwości.[IgnoreDataMember]
do nieruchomości.źródło
W przypadku serializacji XML można użyć atrybutu [XmlIgnore] (System.Xml.Serialization.XmlIgnoreAttribute), aby zignorować właściwość podczas serializacji klasy.
Może to być przydatne dla Ciebie (lub po prostu może być przydatne dla każdego, kto znalazł to pytanie, próbując dowiedzieć się, jak zignorować właściwość podczas serializacji w XML, tak jak ja).
źródło
Spróbuj oznaczyć pole atrybutem [NonSerialized ()]. To powie serializatorowi, aby zignorował pole.
https://msdn.microsoft.com/en-us/library/system.nonserializedattribute(v=vs.110).aspx
źródło
To, co mówisz, jest sprzeczne z tym, co jest napisane w bibliotece MSDN w tej lokalizacji:
http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractserializer.aspx
Nie widzę żadnej wzmianki o funkcji dodatku SP1, o której wspominasz.
źródło