Как десериализовать объект, полученный из Класса исключений с помощью Json.net (C#)?

Я пытаюсь десериализовать объект, полученный из Класса исключений:

   [Serializable]
   public class Error : Exception, ISerializable
   {
    public string ErrorMessage { get; set; }
    public Error() { }
   }

Error error = JsonConvert.DeserializeObject< Error >("json error obj string");

Это дает мне ошибку:

Тип ISerializable 'тип' не имеет допустимого конструктора.

14
задан skaffman 6 August 2010 в 10:07
поделиться

1 ответ

Добавление нового конструктора

public Error(SerializationInfo info, StreamingContext context){}
решило мою проблему.

Вот полный код:


    [Serializable]
    public class Error : Exception
    {

        public string ErrorMessage { get; set; }

        public Error(SerializationInfo info, StreamingContext context) {
            if (info != null)
                this.ErrorMessage = info.GetString("ErrorMessage");
        }
        public override void GetObjectData(SerializationInfo info,StreamingContext context)
        {
            base.GetObjectData(info, context);

            if (info != null)
                info.AddValue("ErrorMessage", this.ErrorMessage);
        }
    }

18
ответ дан 1 December 2019 в 10:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: