Exception.SerializeObjectState Событие
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Внимание!
BinaryFormatter serialization is obsolete and should not be used. See https://aka.ms/binaryformatter for more information.
Возникает, когда исключение сериализовано для создания объекта состояния исключения, содержащего сериализованные данные об исключении.
protected:
event EventHandler<System::Runtime::Serialization::SafeSerializationEventArgs ^> ^ SerializeObjectState;
protected event EventHandler<System.Runtime.Serialization.SafeSerializationEventArgs>? SerializeObjectState;
[System.Obsolete("BinaryFormatter serialization is obsolete and should not be used. See https://aka.ms/binaryformatter for more information.", DiagnosticId="SYSLIB0011", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
protected event EventHandler<System.Runtime.Serialization.SafeSerializationEventArgs>? SerializeObjectState;
protected event EventHandler<System.Runtime.Serialization.SafeSerializationEventArgs> SerializeObjectState;
member this.SerializeObjectState : EventHandler<System.Runtime.Serialization.SafeSerializationEventArgs>
[<System.Obsolete("BinaryFormatter serialization is obsolete and should not be used. See https://aka.ms/binaryformatter for more information.", DiagnosticId="SYSLIB0011", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
member this.SerializeObjectState : EventHandler<System.Runtime.Serialization.SafeSerializationEventArgs>
Protected Custom Event SerializeObjectState As EventHandler(Of SafeSerializationEventArgs)
- Атрибуты
Объект состояния исключения реализует ISafeSerializationData интерфейс .
При подписке на SerializeObjectState событие исключение десериализуется и создается как пустое исключение. Конструктор исключения не выполняется, и состояние исключения также десериализуется. Затем CompleteDeserialization метод обратного вызова объекта состояния исключения получает уведомление, чтобы он смог отправить десериализованные данные в пустое исключение.
Событие SerializeObjectState позволяет прозрачным типам исключений сериализовать и десериализовать данные исключений. Прозрачный код может выполнять команды в пределах набора разрешений, в котором он работает, но не может выполнять, вызывать, наследовать от или содержать критически важный код.
SerializeObjectState Если событие не подписано, десериализация выполняется обычным образом с помощью конструктораException.
Как правило, обработчик события SerializeObjectState добавляется в конструктор исключения для обеспечения его сериализации. Но так как конструктор не выполняется при SerializeObjectState выполнении обработчика событий, сериализация десериализованного исключения может вызвать SerializationException исключение при попытке десериализовать исключение. Чтобы избежать этого, следует также добавить обработчик для SerializeObjectState события в ISafeSerializationData.CompleteDeserialization метод . Иллюстрацию см. в разделе Примеры.
Если это событие подписывается и используется, все производные типы, следующие в иерархии наследования, должны реализовывать один и тот же механизм сериализации.
Продукт | Версии (Устарело) |
---|---|
.NET | Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5 (6, 7, 8, 9) |
.NET Framework | 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0, 2.1 |
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв: