【发布时间】:2019-10-17 08:19:08
【问题描述】:
我使用了支持 .net 核心和 .net 框架(.net 标准)的第三方 nuget 包。
我的项目是一个 .net 框架 4.62 项目,当我使用该第三方时,我收到了来自 XmlSerializer 的异常。
问题是由于属性中的私有 getter。
只有公共属性和字段可以序列化。属性必须具有公共访问器(get 和 set 方法)。如果您需要序列化非公共数据,请使用 BinaryFormatter 类而不是 XML 序列化。
收到该错误后,我尝试打开一个 .net core 2.2 项目,使用相同的第三方 nuget 并看到相同的代码在那里工作。
他是重现问题的代码的一个小例子:
public class Test
{
public string TestProp { private get; set; }
}
// Exception on .net 462 and works on .net core 2.2
var serializer = XmlSerializer.FromTypes(new[] { typeof(Test) });
那么,这是 .net 核心实现的错误还是功能? 我有什么办法可以在 .net 框架上支持这一点,而无需分叉 repo 和修复代码?
【问题讨论】:
标签: c# .net xmlserializer