使用多个构造函数反序列化对象的推荐方法是什么?

时间:2016-09-05 16:10:29

标签: c# ravendb

我有一个包含声明列表的实体(System.Security.Claims.ClaimMS-docu)。序列化工作正常,但是当涉及反序列化时,由于以下异常,我被卡住了:

  

Raven.Imports.Newtonsoft.Json.JsonSerializationException:无法找到用于System.Security.Claims.Claim类型的构造函数。一个类应该有一个默认的构造函数,一个带参数的构造函数或一个用JsonConstructor属性标记的构造函数。

由于这不是我自己的类,我不能简单地添加默认构造函数,删除除一个构造函数以外的所有构造函数或添加JsonConstructor属性。

有没有办法告诉ravendb / Newtonsoft.Json使用什么构造函数,例如为此特定数据类型添加约定?

如果不可能,那么最好的方法是什么?我想到的选项:

  • 为此数据类型添加自定义JsonConverter
  • 为Claims类创建一个包装器,并隐藏除一个构造函数之外的所有构造函数
  • 创建自定义Claim类并稍后将其转换为MS-Claims

0 个答案:

没有答案