In .NET (mindestens < = 2) gibt es ein Problem beim Serialisieren von Objekten, die Ereignisse auslösen, wenn diese Ereignisse von einem nicht serialisierbaren Objekt (wie einem Windows Form) behandelt werden.Kann .NET 3/4 Ereignisse binär de/serialisieren?
Aufgrund der Art und Weise, wie VB.NET Ereignisse implementiert, werden beim Serialisieren eines Objekts auch seine Ereignisse serialisiert (da Ereignisse tatsächlich mithilfe verdeckter Multicast-Delegatfelder implementiert werden). Ein Nebeneffekt davon ist, dass jedes Objekt, das Ereignisse behandelt, die von dem serialisierten Objekt ausgelöst werden, als Teil des Objektgraphen betrachtet wird und auch serialisiert wird.
könnten einige Abhilfen gefunden werden, benutzerdefinierte Serialisierung implementieren oder Delegierten statt Ereignisse mit:
- http://www.codeproject.com/KB/vb/serializevbclasses.aspx
- http://www.lhotka.net/WeBlog/CommentView.aspx?guid=776f44e8-aaec-4845-b649-e0d840e6de2c
jedoch keiner von ihnen die Autoren und Nutzer scheint vollständig zu befriedigen.
Kann .NET 3/4 dieses Problem lösen?
Dieses Problem ist nicht spezifisch für VB.NET - es ist, wie .NET funktioniert. –
Jedoch konnte C# ve mit "[Field: NonSerialized]" eine "flexiblere" Lösung finden. Zumindest gibt es keinen besonderen Bedarf, zusätzlichen Hilfscode zu schreiben, um das Problem zu lösen. – serhio
@serhio: funktioniert dieses Attribut nicht auch VB? Warum nicht? Ich spreche nicht von 'WithEvents'. –