当前位置:  开发笔记 > Android > 正文

如何使用XmlSerializer类反序列化这个简单的xml配置?

如何解决《如何使用XmlSerializer类反序列化这个简单的xml配置?》经验,为你挑选了2个好方法。

我有以下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,然后创建一个基于此的类,但该工具生成的杂乱太多.我想我离这儿很近.我错过了什么?



1> Brody..:

您不能序列化/反序列化内部属性 - 它们必须是公共的.



2> Kevin..:

我同意布罗迪关于你问题的本质.但是,您可能反对将这些字段公开.我已经处理了在过去这一问题的方法是创建一个序列化的类,其唯一目的是读/写的.xml并拥有其所有公共领域的.然后创建一个新的类,它是外部接口.它以序列化的类作为构造的自变量和外部类提供其控制访问序列化的类的公共属性.

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有