Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O BinaryFormatter.Deserialize método agora reencapsula alguns objetos de exceção dentro de um SerializationException antes de propagar a exceção de volta para o chamador.
Alterar descrição
Anteriormente, o BinaryFormatter.Deserialize método permitia algumas exceções arbitrárias, como ArgumentNullException, para propagar a pilha para seus chamadores.
No .NET 5 e posterior, o BinaryFormatter.Deserialize método captura de forma mais rigorosa exceções que ocorrem devido a operações de desserialização inválidas e as envolve em uma SerializationException.
Versão introduzida
5.0
Ação recomendada
Na maioria dos casos, você não precisa tomar nenhuma medida. No entanto, se o site de chamada depender de uma exceção específica que é lançada, poderá desembrulhar a exceção do SerializationException exterior, conforme mostrado no exemplo a seguir.
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.
}