Oharra
Orrialde honetara sartzeak baimena behar du. Saioa hasteko edo direktorioak aldatzen saia zaitezke.
Orrialde honetara sartzeak baimena behar du. Direktorioak aldatzen saia zaitezke.
El BinaryFormatter.Deserialize método ahora vuelve a encapsular algunos objetos de excepción dentro de un SerializationException antes de propagar la excepción de nuevo al llamador.
Descripción del cambio
Anteriormente, el método BinaryFormatter.Deserialize permitía que algunas excepciones arbitrarias, como ArgumentNullException, se propagaran arriba de la pila a sus autores de la llamada.
En .NET 5 y versiones posteriores, el BinaryFormatter.Deserialize método detecta de forma más agresiva las excepciones que se producen debido a operaciones de deserialización no válidas y las encapsula en .SerializationException
Versión introducida
5.0
Acción recomendada
En la mayoría de los casos, no es necesario realizar ninguna acción. Sin embargo, si el sitio de llamada depende de que se inicie una excepción determinada, puede desencapsular la excepción de la excepción SerializationException externa, como se muestra en el ejemplo siguiente.
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.
}