【问题标题】:Cannot deserialize type without setter没有设置器无法反序列化类型
【发布时间】:2016-12-06 12:56:19
【问题描述】:

我在数据库中有二进制序列化对象。它们用 protobuf 序列化。 现在我需要生成一些查看器来查看数据库的内容。 所以,我从数据库中读取流并将其反序列化回对象。 它有效,结果是对象列表:

var dbData = readData(someType);//it is IList collection

现在,我想将此对象列表保存到文件中以查看数据库的内容。我认为最好将其保存到xml。所以,我试过了:

var serializer = new XmlSerializer(dbData.GetType());

但我收到一个错误:无法反序列化类型“My.Entities.IdBase”,因为它包含没有公共设置器的属性“Key”。

现在呢?我无法将类定义更改为设置器。 我应该将对象保存为 json 还是纯文本?或者我应该提取所有属性和值并将其保存到某个 xml?有代码示例吗?

【问题讨论】:

标签: c# xml


【解决方案1】:

JSON.NET 将是这里的答案。你可以在nuget中找到它。像这样使用它:

JsonConvert.DeserializeObject<T>(input);

【讨论】:

  • 我使用“字符串 json = JsonConvert.SerializeObject(objectToWrite, seetings);”我得到 json 作为字符串。如何将其转换为 JObject?我试过:JObject obj = JObject.Parse(json);但它不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-30
  • 1970-01-01
  • 2023-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多