Warum ist System.TimeSpan nicht serialisierbar?

8

Wenn ich versuche, einen TimeSpan-Wert in den ApplicationData-Einstellungen zu speichern, erhalte ich einen Fehler, weil TimeSpan nicht serialisiert werden kann. Diese SO Frage zeigt, wie man damit umgeht: Wie man einen TimeSpan nach XML serialisiert

Warum ist TimeSpan nicht leicht serialisierbar?

Und gibt es eine Liste von Datentypen, die nicht serialisiert werden können?

    
Jerry Nixon - MSFT 18.12.2012, 16:41
quelle

1 Antwort

7

Der Grund, warum es nicht serialisiert wird, ist, weil XmlCustomFormatter die Funktionalität zum Serialisieren nicht implementiert.

Aus der Klasse XmlCustomFormatter folgt hier eine Liste der unterstützten serialisierbaren Daten (aus der FromDefaultValue -Methode):

DateTime

Date

Time

Sie können sehen, wie es verwendet wird, um alles zu serialisieren, wenn Sie die Klasse XmlSerializationWriter in der Quellenreferenz betrachten:

Siehe die WriteTypedPrimitive -Methode für weitere Details zu Primitiven etc.

%Vor%

Details zur Objekt- und XML-Serialisierung:

%Vor%     
mydogisbox 18.12.2012, 17:00
quelle