Сериализация исключений .NET больше не работает без устаревшего шаблона – намеренно?C#

Место общения программистов C#
Ответить
Anonymous
 Сериализация исключений .NET больше не работает без устаревшего шаблона – намеренно?

Сообщение Anonymous »

Наконец-то мне захотелось удалить устаревший шаблон с [SerializableAttribute], protected ctor и GetObjectData(SerializationInfo, StreamingContext) из моих исключений.
Сейчас сериализаторы, System.Text.Json.JsonSerializer и Newtonsoft.Json.JsonConvert ведут себя по-разному:
хотя и не полагаясь на старый IFormatter (правда нет?), они сериализовали и десериализовали исключения, реализуя старый шаблон. Теперь при десериализации даже не воспроизводится исходное сообщение об исключении, но при десериализации MyException создается новое сообщение:

Исключение типа «MyException» было выброшено.

Я вижу, что классы исключений, как пользовательские, так и распространенные типы .NET, включая базовый System.Exception, не подходят обычные требования к (де)сериализации, имея частные/защищенные члены и члены, доступные только для чтения, но намеренно ли потерять весь контент исключений, если не использовать специальные конфигурации?

Подробнее здесь: https://stackoverflow.com/questions/792 ... n-intentio
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»