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

dargestellt
[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?

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top