簡體   English   中英

如何使用XmlWriter / XmlReader讀取/寫入復雜對象

[英]How to read/write complex object with XmlWriter/XmlReader

我一直在嘗試找到一種使用XmlReader / XmlWriter編寫XML的簡單方法。 我真的不喜歡使用“ IXmlSerializable”接口,但是我的某些數據類別無選擇。

無論如何,我想做的很簡單:

private MyClass myObject;
public void WriteXml(XmlWriter writer)
{
    writer.WriteObject(myObject); // <-- this method doesn't exists
}

因此,我發現有兩種解決方法:

  1. 編寫自己的例程以手動編寫對象。 相當可笑,因為.Net已經做到了。
  2. 使用StringWriter創建一個新的序列化器,並使用WriteValue(string)方法。

我還沒有測試第二個,但是我認為它可能會工作(由於ReadValue結果,所以不確定)。

然后我的問題是:我錯過了重要的東西還是唯一的方法? 還是有更好的方法來解決這個問題?

謝謝。

玩了之后,我發現一些簡單的事情。 這是我正在為那些想知道如何解決問題的人使用的代碼(類似於閱讀和元素):

    public static void WriteElement(XmlWriter writer, string name, object value)
    {
        var serializer = new XmlSerializer(value.GetType(), new XmlRootAttribute(name));
        serializer.Serialize(writer, value);
    }

我不知道為什么使問題復雜化,但是沒有比這更簡單的了。

嘗試使用XmlDocument類。 它使用XmlNode作為輕松寫出xml的基礎。 您還可以序列化一個類,或使用DataSet類寫出xml,或將其讀回到數據集或XmlDocument類型結構中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM