我有以下xml我想反序列化成一个类
String1 String2
我正在尝试将其序列化为以下类:
[XmlRoot("root")]
public class root
{
[XmlElement("element1")]
internal string element1 { get; set; }
[XmlElement("element2")]
internal string element2 { get; set; }
}
当我尝试使用以下代码反序列化它时,实例化配置对象,但字符串为空.
using (TextReader reader = new StreamReader(configFile))
{
XmlSerializer serializer = new XmlSerializer(typeof(root));
this.config = (root)serializer.Deserialize(reader);
}
我尝试使用xsd.exe创建一个xsd,然后创建一个基于此的类,但该工具生成的杂乱太多.我想我离这儿很近.我错过了什么?
您不能序列化/反序列化内部属性 - 它们必须是公共的.
我同意布罗迪关于你问题的本质.但是,您可能反对将这些字段公开.我已经处理了在过去这一问题的方法是创建一个序列化的类,其唯一目的是读/写的.xml并拥有其所有公共领域的.然后创建一个新的类,它是外部接口.它以序列化的类作为构造的自变量和外部类提供其控制访问序列化的类的公共属性.