簡體   English   中英

C#將對象實例序列化為XML

[英]C# Serialize Object instance to XML

我在序列化對象實例時遇到了一些問題,並讓一些偽代碼說明了自己:

List<A> ListOfA = new List<A>();

[Serializable]
public class A
{
public Object Instance;
...
}

[Serializable]
public class B
{
    public String SomeAttribute = "example"; 
}

// This will be called:

void Serialize()
{
    var a = new A();
    a.Instance = new B();
    ListOfA.Add(a);

 // a.Instance = new String("test"); works but List<String>, B, ... throws Invalid Operation Exception when serializing:

    using (TextWriter textWriter = new StreamWriter(filePath, false))
    {
        var xmlSerializer = new XmlSerializer(ListOfA.GetType());
        xmlSerializer.Serialize(textWriter, ListOfA );
    }
}

有人對此有解決方案嗎?

我試圖使用XmlInclude沒有任何結果。

甚至可以在不知道對象類型的情況下序列化對象?

嘗試:

[XmlInclude(typeof(B))]
public class A {
  public Object Instance;
}

順便說一句。 [Serializable]對於xml序列化沒有用。

感謝您的快速響應,但是我確實通過為XmlSerializer提供第二個參數找到了解決問題的方法:

var xmlSerializer = new XmlSerializer(ListOfA.GetType(), new Type[] { typeof(B) });

這樣,我不必將[XmlInclude(typeof(B))]添加到類A。

暫無
暫無

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

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