Một câu hỏi khác về tuần tự hóa XML với .Net.Mảng Deserialise XML tại gốc tài liệu
Tôi nhận được chuỗi XML từ bên thứ 3 và muốn phân tích cú pháp thành lớp .Net với mức tối thiểu là phiền phức. Tôi không muốn sử dụng xsd như XML của tôi là khá đơn giản và tôi không thích các lớp tiết nó phun ra. Tôi đã có những điều cơ bản của deserialisation làm việc nhưng đang đấu tranh với một mảng cấp độ gốc.
Vấn đề XML như sau:
<people>
<person>
<id>1234</id>
</person>
<person>
<id>4567</id>
</person>
</people>
Làm thế nào để lập bản đồ thuộc tính trên C# lớp dân của tôi để deserialise nó?
Đây là những gì tôi muốn làm việc nhưng không.
[Serializable()]
[XmlRootAttribute("people", Namespace = "", IsNullable = false)]
public class People
{
[XmlArrayItem(typeof(Person), ElementName = "person")]
public List<Person> Persons;
}
Nếu tôi mangle XML để:
<result>
<people>
<person>
<id>1234</id>
</person>
<person>
<id>4567</id>
</person>
</people>
</result>
Sau đó, nó làm việc với các định nghĩa lớp dưới đây nhưng nó cảm thấy rất sai.
[Serializable()]
[XmlRootAttribute("result", Namespace = "", IsNullable = false)]
public class People
{
[XmlArray(ElementName = "people")]
[XmlArrayItem(typeof(Person), ElementName = "person")]
public List<Person> Persons;
}
bạn không cần '[Serializable]', btw - nó không được sử dụng bởi 'XmlSerializer' –