无法反序列化值时,如何导致反序列化失败?

时间:2020-07-26 18:46:51

标签: c# error-handling json.net

当我序列化然后反序列化这样的仅吸气剂自动属性时:

class A {
  public string B { get; }
  private A() { }
  public A(int unusableConstructor) { B = "Val"; }
}

然后,Json.NET将在属性B中添加“ null”,从而成功反序列化类A的实例。

但是我不想要那个!

跟踪中确实包含消息Unable to deserialize value to non-writable property 'B' on A.,但它处于Info级别,并且Error事件不会触发。

是否有一种方法可以说服Json.NET在这种情况下产生错误或以其他方式通知我(除了尝试从跟踪中解析信息消息之外)?

1 个答案:

答案 0 :(得分:0)

您可以将JsonSerializerSettings传递给您的DeserializeObject<T>方法。

文档here

示例:

var settings = new JsonSerializerSettings
{
    MissingMemberHandling = MissingMemberHandling.Error
};
var myContent = JsonConvert.DeserializeObject<MyClass>(someString, settings);
相关问题