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

c# – 反序列化XmlDocument的最短方法

发布时间:2020-12-15 06:53:16 所属栏目:百科 来源:网络整理
导读:我正在寻找一种简洁的方法来反序列化XmlDocument对象.我发现最接近的是 this,但我真的很想知道是否有更好的方法(在.NET 4.5甚至4.6中),因为我已经有了XmlDocument. 所以目前看起来如下: // aciResponse.Data is a XmlDocumentMyClass response;using (XmlRe
我正在寻找一种简洁的方法来反序列化XmlDocument对象.我发现最接近的是 this,但我真的很想知道是否有更好的方法(在.NET 4.5甚至4.6中),因为我已经有了XmlDocument.

所以目前看起来如下:

// aciResponse.Data is a XmlDocument
MyClass response;
using (XmlReader reader = XmlReader.Create((new StringReader(aciResponse.Data.InnerXml))))
{
    var serializer = new XmlSerializer(typeof(MyClass));
    response =  (MyClass)serializer.Deserialize(reader);
}

谢谢你有更好的主意!

解决方法

您可以放弃XmlReader并使用 TextReader而不是使用TextReader XmlSerializer.Deserialize Method重载.

工作范例:

void Main()
{
   String aciResponseData = "<?xml version="1.0" encoding="UTF-8"?><tag><bar>test</bar></tag>";
   using(TextReader sr = new StringReader(aciResponseData))
   {
        var serializer = new System.Xml.Serialization.XmlSerializer(typeof(MyClass));
        MyClass response =  (MyClass)serializer.Deserialize(sr);
        Console.WriteLine(response.bar);
   }
}

[System.Xml.Serialization.XmlRoot("tag")]
public class MyClass
{
   public String bar;
}

(编辑:李大同)

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

    推荐文章
      热点阅读