Serialize Composed Func?

8

Das funktioniert gut:

%Vor%

Allerdings nicht:

%Vor%

Es wird eine Runtime-Serialisierungsausnahme ausgelöst: Type 'MyProjectName._Default+<>c__DisplayClass3' in Assembly 'MyProjectName, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable.

Jetzt kann ich dieses Mal umgehen, aber ich würde gerne verstehen, warum das so ist, damit ich in Zukunft keine andere Wahl habe, als vor der Serialisierung Funktionen zu komponieren, dann habe ich eine Lösung.

    
Fishtoaster 01.09.2010, 18:08
quelle

1 Antwort

10

Was im zweiten Fall passiert, ist, dass eine Schließung involviert ist. Die Verwendung von func1 innerhalb von func2 erzeugt eine Schließung, um den gemeinsamen Status zwischen den lambdas-Ausdrücken zu erfassen. Verschlüsse sind nicht serialisierbar. Wenn Sie versuchen, die Funktion serialisieren, versucht es, das Zielobjekt zu serialisieren, das die Schließung ist, und Sie erhalten Ihre Ausnahme.

    
JaredPar 01.09.2010, 18:13
quelle