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



当我序列化然后反序列化一个只有getter的自动属性时,如下所示:

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

然后Json.NET将成功地反序列化类A的实例;空";进入房地产B.

但我不想那样!

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

有没有办法说服Json.NET在这种情况下产生错误或以其他方式通知我(除了尝试解析跟踪中的信息消息(?

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

此处提供文档。

示例:

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

最新更新