[英]Deserializing a list of objects from XML in C#
我有以下無法更改的Xml:
<myRoot>
<User>
<Name>James</Name>
</User>
<User>
<Name>Jill</Name>
</User>
</myRoot
我創建了一個表示該xml的類:
[XmlRoot("myRoot")]
public class Users
{
[XmlElement("User")]
List<User> UserList {get;set;}
}
public class User
{
[XmlElement("Name")]
string FirstName {get;set;}
}
當我反序列化xml時,我確實在數組中獲得了正確的記錄量。 但是FirstName始終為空或為null。
請幫忙。
您需要將兩個屬性都設置為public
:
[XmlRoot("myRoot")]
public class Users {
[XmlElement("User")]
public List<User> UserList {get;set;}
}
public class User {
[XmlElement("Name")]
public string FirstName {get;set;}
}
一個更干凈的選擇是擺脫您的Users
類,它似乎只是一個用戶列表的容器。 您可以只定義User
類:
public class User {
[XmlElement("Name")]
public string FirstName { get; set; }
}
並反序列化List<User>
,如下所示:
XmlSerializer ser = new XmlSerializer(typeof(List<User>),
new XmlRootAttribute("myRoot"));
using (var str = System.IO.File.OpenRead(@"path\to\file")) {
List<User> u = (List<User>)ser.Deserialize(str);
}
嘗試:
將[可序列化]添加到您的Users和User類。
將FirstName和UserList設為公開
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.