2009-05-05 67 views
1

如何序列化XML到泛型集合可以說我有下面的XML文件:時指定的命名空間

<?xml version="1.0" encoding="utf-8"?> 
<Customers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Customer.xsd"> 
    <Customer> 
     <FirstName></FirstName> 
     <LastName></LastName> 
    </Customer> 
    <Customer> 
     <FirstName></FirstName> 
     <LastName></LastName> 
    </Customer> 
    <Customer> 
     <FirstName></FirstName> 
     <LastName></LastName> 
    </Customer> 
</Customer> 

我也創建一個映射到相應的字段Customer對象。

現在,如果我試圖序列這泛型列表這樣:

XmlSerializer xml = new XmlSerializer(typeof(List<Customer>)); 

我會得到一個例外,因爲在XML文檔我的名單沒有被映射到相同的命名空間的客戶,我無法將其添加爲屬性,因爲我使用的是通用列表,而不是自定義集合

如何告訴序列化程序將命名空間與列表進行匹配而不創建自定義集合?

編輯: 我應該詳細一點,通過串行拋出的異常是:

(客戶的xmlns = ''>預計不會

現在,因爲我使用一個List(T。 )作爲父節點,我怎麼能在泛型列表匹配的XML文檔中指定的命名空間?

+0

的事實是,結束標記是而不是一個錯字? – 2009-05-05 16:04:17

+0

對我來說是錯別字,對不起 – mwjackson 2009-05-05 16:14:45

回答

1

我認爲錯誤有做的<客戶>節點不是XMLNS。

嘗試

XmlRootAttribute xr = new XmlRootAttribute("Customers"); 
XmlSerializer xs = new XmlSerializer(typeof(List<Customer>), xr); 

默認情況下,會期望一個<ArrayOfCustomer>節點

+0

完美,謝謝! – mwjackson 2009-05-05 16:14:06