2009-07-30 28 views
14

Tôi đang cố gắng deserialize XML dưới đây vào lớp học, với Components deserialized vào một List<string>, nhưng không thể tìm ra cách để làm như vậy. Trình khử giải hoạt động tốt cho tất cả các thuộc tính khác, chứ không phải là Components. Bất cứ ai biết làm thế nào để làm điều này?Làm thế nào để deserialize vào một danh sách <String> bằng cách sử dụng XmlSerializer

<ArsAction> 
    <CustomerName>Joe Smith</CustomerName> 
    <LoginID>jdsmith</LoginID> 
    <TicketGroup>DMS</TicketGroup> 
    <Software>Visio 2007 Pro</Software> 
    <Components> 
    <Component>Component 1</Component> 
    <Component>Component 2</Component> 
    </Components> 
    <Bldg>887</Bldg> 
    <Room>1320p</Room> 
</ArsAction> 
+0

Vui lòng đăng lớp bạn đang cố gắng sắp xếp và deserialize. –

Trả lời

36

Thêm một tài sản như thế này để giữ danh sách các thành phần:

[XmlArray()] 
public List<Component> Components { get; set; } 

Edit: Xin lỗi tôi không nhận định đó. Bạn muốn đọc nó thành một tập hợp các chuỗi. Tôi chỉ cố gắng này dưới đây và nó làm việc trên mẫu của bạn. Điều quan trọng là chỉ để thiết lập các thuộc tính xml serialization chính xác.

public class ArsAction 
{ 
    [XmlArray] 
    [XmlArrayItem(ElementName="Component")] 
    public List<string> Components { get; set; } 
} 
+0

Đã thực sự giúp tôi cảm ơn rất nhiều – Lijo

+0

[XmlArray] là tùy chọn nếu tên thuộc tính giống với tên thẻ –

+0

[XmlArrayItem (ElementName = "Component")] có thể được rút ngắn thành [XmlArrayItem ("Component")]. Thử nghiệm trên .Net 4.0 –

Các vấn đề liên quan