BinaryFormatter.Deserialize umschließt einige Ausnahmen in SerializationException erneut
Die BinaryFormatter.Deserialize-Methode umschließt jetzt einige Ausnahmeobjekte innerhalb einer SerializationException erneut, bevor die Ausnahme an den Aufrufer zurückgegeben wird.
Änderungsbeschreibung
Bisher erlaubte die BinaryFormatter.Deserialize-Methode die Weitergabe einiger zufälliger Ausnahmen, wie z. B. ArgumentNullException den Stapel entlang zu den Aufrufern.
In .NET 5 und höher fängt die BinaryFormatter.Deserialize-Methode Ausnahmen aufgrund von ungültigen Deserialisierungsvorgängen aggressiver ab und umschließt sie in einer SerializationException.
Eingeführt in Version
5.0
Empfohlene Maßnahme
In denen meisten Fällen müssen Sie keine Maßnahmen ergreifen. Wenn es für Ihre Aufrufsite jedoch erforderlich ist, dass eine bestimmte Ausnahme ausgelöst wird, können Sie die Umschließung der Ausnahme in der äußeren SerializationException aufheben, wie im folgenden Beispiel gezeigt.
Stream inputStream = GetInputStream();
var formatter = new BinaryFormatter();
try
{
object deserialized = formatter.Deserialize(inputStream);
}
catch (MyException myEx)
{
// Handle 'myEx' here in case it was thrown directly.
}
catch (SerializationException serEx) when (serEx.InnerException is MyException myEx)
{
// Handle 'myEx' here in case it was wrapped in SerializationException.
}
Betroffene APIs
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für