没有setter就无法反序列化类型

时间:2016-12-06 12:56:20

标签: c# xml

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

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

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

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

但我收到一个错误:无法反序列化类型' My.Entities.IdBase'因为它包含属性' Key'没有公共制定者。

现在怎么办?我无法将类定义更改为具有setter。 我应该将对象保存为json或纯文本吗?或者我应该提取所有属性和值并将其保存到某些xml?任何代码示例?

1 个答案:

答案 0 :(得分:0)

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

JsonConvert.DeserializeObject<T>(input);