json 未找到成员'WebPage'的错误

oknwwptz  于 2023-05-19  发布在  其他
关注(0)|答案(3)|浏览(147)

获取异常
会员'HelpUrl'未找到
尝试反序列化对象时。下面是我正在尝试执行的代码。

Log objectLog  = (Log) JsonConvert.DeserializeObject(
                       JObject.Parse(msg.Body)["Message"].ToString());

我尝试将Log类注解为[Serializable],使用SerializationInfo信息、StreamingContext上下文为Log类创建构造函数
为什么会失败?

1hdlvixo

1hdlvixo1#

在我的例子中,被序列化的对象有一个从System.Exception派生的CustomException类。我想你也会有类似的情况。
正如我在.NET中详细说明的那样,反序列化时缺少成员。(感谢Heretic将我们链接到这篇相关文章),我可以通过将[Serializable]属性添加到CustomException类来解决这个问题。

1yjd4xko

1yjd4xko2#

在我的例子中,问题是序列化在使用System.Text.Json的项目中的位置。在使用Mvc.NewtonSoftJson之后,序列化和反序列化都正常。

62lalag4

62lalag43#

我从json字符串得到异常,它可能是不可序列化的。所以我必须处理并记录错误。

Exception SafeDeserializeException(string maskedExceptionString)
 {
        try
        {
            ret = JsonConvert.DeserializeObject<Exception>(maskedExceptionString);
        }
        catch (Exception exc)
        {
            ret=return new Exception($"{deserializationException.Message} Data: {maskedExceptionString}"
                , exc); 
        } 
        return ret;
 }

相关问题