2011-10-11 104 views
3

我怎樣才能序列的兩個對象A類和B類的,到XML,以便它可以是以下格式的:如何序列化對象到XML?

<root> 
<objClassA> //Parent Node 
    <objClassB> // child node of objClassA 
    </objClassB> 
</objClassA> 
</root> 

回答

1
[Serializable(true)] 
public class objClassB 
{ 
} 

[Serializable(true)] 
public class objClassA 
{ 
    public objClassB instance; 
} 

然後使用XmlSerializer用於objClassA的一個實例,它會自動將b的實例作爲孩子放置在自己的內部。

+0

但是,我不需要類A內的類B實例。我只需要以上述格式框架xml。有沒有其他方法? – NewBie

+0

你必須自己序列化(自定義)。 –

+0

在這種情況下,您需要在您的類上實現IXmlSerializable並添加WriteXml和ReadXml方法。在那裏你可以添加你想要的任何子元素。 –

1
 
using System; 
using System.IO; 
using System.Xml.Serialization; 

void Write(root rootInstance) 
{ 
    XmlSerializer xmlSerializer = new XmlSerializer(typeof(root)); 
    using (FileStream fileStream = new FileStream("filepath.xml", FileMode.Create)) 
    { 
     xmlSerializer.Serialize(fileStream, rootInstance); 
    } 
} 

    public class root 
    { 
     public ClassA objClassA { get; set; } 
    } 

    public class ClassA 
    { 
     public ClassB objClassB { get; set; } 
    } 
    public class ClassB { }