加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 21:04:00 所属栏目:百科 来源:网络整理
导读:我在数据库中有二进制序列化对象.它们与protobuf序列化. 现在我需要生成一些查看器来查看数据库的内容. 所以,我从数据库中读取流并将其反序列化回对象. 它工作,结果是对象列表: var dbData = readData(someType);//it is IList collection 现在,我想将这个
我在数据库中有二进制序列化对象.它们与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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读