加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何使用Json.net(C#)反序列化从Exception类派生的对象?

发布时间:2020-12-16 19:52:12 所属栏目:百科 来源:网络整理
导读:我试图反序列化从Exception类派生的对象: [Serializable] public class Error : Exception,ISerializable { public string ErrorMessage { get; set; } public Error() { } } 错误error = JsonConvert.DeserializeObject错误(“json error obj string”);
我试图反序列化从Exception类派生的对象:
[Serializable]
   public class Error : Exception,ISerializable
   {
    public string ErrorMessage { get; set; }
    public Error() { }
   }

错误error = JsonConvert.DeserializeObject<错误>(“json error obj string”);

它给我错误:

ISerializable类型’type’没有有效的构造函数.

添加一个新的构造函数
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);
        }
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读