In Windows Forms, .NET Framework 4.0, versuche ich eine Instanz einer Klasse zu serialisieren.
Die Klasse ist als serialisierbar gekennzeichnet, aber das Formular, das die Klasse verwendet (offensichtlich), ist nicht.
Ich möchte keine Instanz des Formulars serialisieren. Ich möchte die Daten, die ich in meiner Klasse habe, serialisieren.
Alles in meiner Klasse ist als serialisierbar gekennzeichnet. Warum bekomme ich noch die SerializationException?
(Klicken Sie & lt; HIER & lt; & lt; , um das Bild in voller Größe in einem neuen Fenster zu öffnen )
Aktualisierung:
Hier ist meine BrazierCuttoff
-Klasse und verwandte Teile:
Dies ist das Objekt BrazierPay
, das in der obigen Klasse verwendet wird:
Ich habe diesen Aufzählungstyp sogar als serialisierbar markiert (obwohl er es nicht brauchen sollte):
%Vor% Ich musste ein NonSerializedAttribute
für den EventHandler .
Der Ereignisdelegate konnte in der Klasse nicht serialisiert werden (siehe Delegaten und Serialisierung ) ).
Markieren Sie das Feld als NonSerializedAttribute
war so einfach wie es klingt.
Von meinem Code habe ich einfach diese Zeile hinzugefügt:
%Vor%Dies können Sie mit jeder JSON-Serialisierung ausführen, einschließlich der Web-API in MVC 4.
Ich fand diesen Beitrag sehr hilfreich, wenn ich eine Serialisierung erhielt, außer auf einem konstanten Wert. Jeder const-Wert muss mit dem gleichen Attribut wie in Nick Freemans Antwort markiert sein:
%Vor%Hatte das gleiche Problem, der PropertyChanged EventHandler meiner serialisierbaren NotifyObject-Basisklasse wurde von einigen Viewmodels abonniert, die daher in die Serialisierungswarteschlange gingen. Das Hinzufügen des NonSerializedAddtribute zu diesem EventHandler hat meinen Tag gespeichert. : -)
Tags und Links c# winforms serialization