微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 如果没有setter,则无法反序列化类型

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

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

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

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

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

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

解决方法

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

JsonConvert.DeserializeObject<T>(input);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐