SerializationException Type "ist nicht als serialisierbar gekennzeichnet" - aber es ist

8

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:

%Vor%

Dies ist das Objekt BrazierPay , das in der obigen Klasse verwendet wird:

%Vor%

Ich habe diesen Aufzählungstyp sogar als serialisierbar markiert (obwohl er es nicht brauchen sollte):

%Vor%     
jp2code 16.07.2012, 15:47
quelle

4 Antworten

18

Gelöst

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%     
jp2code 16.07.2012, 16:47
quelle
6

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%     
Zach La Lond 09.05.2013 18:38
quelle
2
%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. : -)

    
Monga 20.04.2014 14:32
quelle
0

markieren Sie BrazierMatrix2 als [Serializable]

    
burning_LEGION 16.07.2012 15:55
quelle

Tags und Links