Freigeben über


Selektive Serialisierung

Klassen enthalten häufig Felder, die nicht serialisiert werden sollten. Angenommen, eine Klasse speichert eine Thread-ID in einer Membervariablen. Nach der Deserialisierung der Klasse kann der Thread, für den die ID bei der Serialisierung der Klasse gespeichert wurde, ggf. nicht mehr ausgeführt werden, d. h., es ist nicht sinnvoll, diesen Wert zu serialisieren. Die Serialisierung von Membervariablen kann verhindert werden, indem diese wie folgt mit dem NonSerialized-Attribut markiert werden.

[Serializable]
public class MyObject 
{
  public int n1;
  [NonSerialized] public int n2;
  public String str;
}

Legen Sie nach Möglichkeit ein Objekt, das sicherheitsrelevante Daten enthalten kann, als nicht serialisierbar fest. Wenn das Objekt serialisiert werden muss, wenden Sie auf bestimmte Felder, die vertrauliche Daten speichern, das NonSerialized-Attribut an. Wenn Sie diese Felder nicht von der Serialisierung ausschließen, beachten Sie, dass die von diesen gespeicherten Daten für jeden Code offen liegen, der eine Serialisierungsberechtigung hat. Weitere Informationen über das Schreiben von sicherem Serialisierungscode finden Sie unter Sicherheit und Serialisierung.

Siehe auch

Binäre Serialisierung | Zugriff auf Objekte in anderen Anwendungsdomänen mit .NET-Remoting | XML- und SOAP-Serialisierung | Sicherheit und Serialisierung