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

标签 c# error-handling json.net

当我序列化然后反序列化这样的仅 setter/getter 自动属性时:

class A {
  public string B { get; }
  private A() { }
  public A(int unusableConstructor) { B = "Val"; }
}
然后,通过将“null”放入属性B,Json.NET将成功反序列化类A的实例。
但是我不要那个!
跟踪中确实包含消息Unable to deserialize value to non-writable property 'B' on A.,但它在Info级别,并且Error事件未触发。
有没有办法说服Json.NET在这种情况下产生错误或以其他方式通知我(除了尝试从跟踪中解析信息消息之外)?

最佳答案

您可以将JsonSerializerSettings传递给DeserializeObject<T>方法。
文件here
例:

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

关于c# - 无法反序列化值时,如何导致反序列化失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63104284/

相关文章:

c# - 使用 JsonConverter json.net 将 JSON 反序列化为对象列表

c# - 通过字符串名称从 JSON 中获取属性(已经反序列化为类)

C# 在不反序列化的情况下在 JSON 中搜索

c# - 使用 Entity Framework 返回所有 IQueryable

C# 链接操作

c# - 检查空引用

r - 通过产生 NA 来捕捉错误

windows - "was unexpected at this time."

c# - 隐藏或删除下拉列表中的重复选项

c# - 向 UI 传达错误消息的建议做法