假设我有一些XML像这样:
<User>
<Name>X</Name>
<Gender>Y</Gender>
<ImageUrl>Z</ImageUrl>
</User>
Run Code Online (Sandbox Code Playgroud)
我有一个名为User的类.
public class User
{
public User(string name, string gender, string imageUrl)
{
Name = name;
Gender = gender;
ImageUrl = imageUrl;
}
public string Name { get; }
public string Gender { get; }
public string ImageUrl { get; }
}
Run Code Online (Sandbox Code Playgroud)
public User(string name, string gender, string ImageUrl)
它只接受构造函数并且不允许为属性设置,使用linq和c#将这个xml解析为这些对象的最佳方法是什么?
以粗略的方式,可以创建匿名对象,然后迭代它们以创建所需的对象.有没有更有效的方法来做到这一点?
您根本不需要任何匿名对象.使用LINQ to XML,您只需从XML中选择用户节点,并User
通过使用从XML节点中选择的值调用构造函数来创建实际的类实例:
// xml contains XML string, like in your sample
var document = XDocument.Parse(xml);
var users = document.Descendants("User")
.Select(u => new User(
u.Element("Name").Value,
u.Element("Gender").Value,
u.Element("ImageUrl").Value
));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
629 次 |
最近记录: |