.NET, C#: Wie Sie zum hinzufügen einer benutzerdefinierten Serialisierung Attribut, das als ISerializable-Schnittstelle

Ich bin dabei einige Serialisierung von db linq-Objekte, die enthalten EntitySet und EntityRef Klassen.

Fand ich ein ziemlich einfacher Weg, um mit der Serialisierung von diesen Klassen, indem Sie einfach mit ISerializable richtig zu handhaben, Mitglieder dieser Typ (Umwandlung in Listen für die Serialisierung, und macht es auf der Deserialisierung).

Jedoch, es wäre wirklich schön, wenn ich könnte:

[Serializable]
[SerializeLinqEntities]
partial class Person
{ ... }

Statt:

partial class Person : ISerializable
{
  public virtual void GetObjectData( SerializationInfo si, StreamingContext ctxt )
  {
    EntitySerializer.Serialize(this, typeof(Person), si, ctxt);
  }

  protected Person( SerializationInfo si, StreamingContext ctxt )
  {
    EntitySerializer.Deerialize(this, typeof(Person), si, ctxt);
  }
}

Gibt es eine Möglichkeit, dies zu tun? Ich sah durch die Serialisierung von Klassen und konnte nicht scheinen zu finden, jeder Weg, um das setup benutzerdefinierte Serialisierung filter-Routinen (wo könnte ich suchen für meine custom-Attribut).

Dank!

  • Sieht aus wie IClientFormatterSinkProvider und IServerFormatterSinkProvider wird mir erlauben, um eine BinaryFormatter mit meinem custom SurrogateSelector gesetzt. Nochmals vielen Dank Sergey!
  • Hmm... so, wie es sich herausstellt, hat Microsoft gemacht dies viel schwieriger als es aussieht. Finden Sie unter den folgenden link: 123aspx.com/Rotor/RotorSrc.aspx?rot=40027 Spüle-Anbieter, wie es sich herausstellt, sind ziemlich Komplex, und es ist nicht so einfach, wie einfach die Umsetzung ein. Ich wünschte wirklich, Sie würden besser gestellt-Schnittstelle API ist die Schnittstelle mit der binären Serialisierung...
InformationsquelleAutor marq | 2010-02-01
Schreibe einen Kommentar