BinaryFormatter.Deserialize serializationException'daki bazı özel durumları yeniden sarmalar

BinaryFormatter.Deserialize yöntemi artık özel durumu çağırana geri yaymadan önce içindeki SerializationException bazı özel durum nesnelerini yeniden çizer.

Açıklama değiştirildi

BinaryFormatter.Deserialize Daha önce yöntemi, yığını çağıranlara yaymak için gibi ArgumentNullExceptionbazı rastgele özel durumlara izin verdi.

.NET 5 ve sonraki sürümlerinde yöntemi, BinaryFormatter.Deserialize geçersiz seri durumdan çıkarma işlemleri nedeniyle oluşan özel durumları daha agresif bir şekilde yakalar ve bunları bir SerializationExceptioniçinde sarmalar.

Sürüm kullanıma sunulmuştur

5.0

Çoğu durumda herhangi bir işlem yapmanız gerekmez. Ancak, arama siteniz belirli bir özel durumun oluştuğuna bağlıysa, aşağıdaki örnekte gösterildiği gibi dıştaki SerializationExceptionözel durumun işaretini kaldırabilirsiniz.

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.
}

Etkilenen API’ler