Benutzerdefinierte Attribut Eigenschaft Serialisierung NetDataContractSerializer wechseln
-
19-09-2019 - |
Frage
In .NET 3.5, ich möchte ein benutzerdefiniertes Attribut erstellen (zB [NetDataMember]), die das Serialisierungsverhalten von DataContractSerializer
wechseln würde NetDataContractSerializer
.
Im Grunde genommen für eine Klasse A
wie unten
[DataContract]
class A
{
[DataMember]
public int SimpleProperty { get; set; }
[Transcient]
public IBar ComplexProperty { get; set; }
}
Ich möchte einen Serializer erhalten, wie DataContractSerializer
standardmäßig verhalten würde, aber das wäre für Objekte mit NetDataContractSerializer
markiert mit [NetDataMember]
außer Kraft gesetzt werden.
Jede Idee, wie ein Serializer zu entwerfen, die ein solches Verhalten erreichen würde?
Lösung
Es gibt keine "out-of-the-box" Art und Weise in WCF, dies zu tun -. Aber eine Menge wirklich intelligenter Menschen in Angriff genommen hat bereits das Problem
Schauen Sie sich Aaron Skonnard Blog-Post auf der NetDataContractSerializer , in dem er ein Verhalten präsentieren Sie auf Ihre Datenverträge als Attribut setzen können:
[NetDataContractFormat]
auf der Service-Schnittstelle (für alle Methoden) oder auf einer einzigen Methode wird die NetDataContractSerializer für diesen Anruf verwenden. Sie müssen dies pro Betrieb oder eine Dienstleistung definieren -. Ihre Daten nicht an Verträge