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.
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.
Tags und Links c# serialization delegates function-composition