erklärung set get c# Wie kann verhindert werden, dass automatisch implementierte Eigenschaften serialisiert werden?



3 Answers

// This works for the underlying delegate of the `event` add/remove mechanism.
[field:NonSerialized]
public event EventHandler SomethingHappened;

Aber es scheint nicht für automatisch implementierte Eigenschaften. Ich dachte, es wäre erwähnenswert, weil es nützlich ist, wenn man ein Objekt mit Event-Abonnenten serialisiert.

c# auto property

Wie kann ich verhindern, dass eine automatisch implementierte Eigenschaft vom Binärformatierer serialisiert wird? Das [NonSerialized] -Attribut kann nur mit Feldern verwendet werden. Und das Feld ist ausgeblendet, wenn automatisch implementierte Eigenschaften verwendet werden.




Wenn Sie nach Xml serialisieren, können Sie das XmlIgnore-Attribut verwenden.




Autoimplementierte Eigenschaften sind nicht möglich. Folgendes beachten:

Dieses Verhalten ist "von Entwurf". Die Entscheidung zu der Zeit, als auto-properties implementiert wurden, war, dass sie im "common case" funktionieren würden, was unter anderem keine Attribute auf dem generierten Feld bedeutet. Die Idee dahinter ist, sie einfach zu halten und sie nicht langsam zu vollständigen Eigenschaften zu mutieren. Also, wenn Sie das NonSerialized-Attribut verwenden müssen, sind volle Eigenschaften der Weg.

( http://social.msdn.microsoft.com/Forums/en-US/vcsharp2008prerelease/thread/2b6eb489-122a-4418-8759-10808252b195 )






Related