2014-03-03 18 views
0

有沒有一種方法可以序列化下面的類,而不需要序列化XML根,我希望序列化從XMLArray開始?序列化自定義類的一部分c#

如果您需要更多信息,請讓我知道。

[XMLRoot] 
public class Customers 
{ 
    List<Customer> _Customers = new List<Customer>(); 

    [XmlArray("Customers")] 
    [XmlArrayItem("Customer")] 
    public List<Customer> Customers 
    { 
     get { return _Customers; } 
     set { _Customers = value; } 
    } 
} 
public class Customer 
{ 
    string _test1; 
    string _test2; 

    public string test1 
    { 
     get { return _test1; } 
     set { _test1 = value; } 
    } 

    public string test2 
    { 
     get { return _test2; } 
     set { _test2 = value; } 
    } 

} 
+0

爲什麼?這是什麼讓你感到困擾? – elyashiv

+0

您必須序列化Customers.Customers而不是Customers。 –

回答

0

XML文檔將需要某種根元素。你是不是想讓客戶成爲客戶?然後,不要將客戶類別標記爲XmlRoot,而是將客戶類別標記爲任何內容,即

class Program 
{ 
    static void Main(string[] args) 
    { 
     Shop shop = new Shop() 
     { 
      Name = "Jack's Shop", 
      Customers = new List<Customer>() 
      { 
       new Customer() { FirstName = "Maynard", LastName = "Keating" }, 
      } 
     }; 

     XmlSerializer xmls = new XmlSerializer(typeof(Shop)); 

     using (FileStream fs = File.Create("JacksShop.xml")) 
      xmls.Serialize(fs, shop); 
    } 
} 

[XmlRoot] 
public class Shop 
{ 
    public string Name { get; set; } 
    public List<Customer> Customers { get; set; } 
} 

public class Customer 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
}