har*_*ter 6 c# xml linq asp.net
有没有办法获取给定的XML文件并转换(最好使用C#Generics)它到T的具体可枚举列表中,其中T是我的具体类
例如,我可能有一个类似的XML文件
<fruits>
<fruit>
<id>1</id>
<name>apple</name>
</fruit>
<fruit>
<id>2</id>
<name>orange</name>
</fruit>
</fruits>
Run Code Online (Sandbox Code Playgroud)
我想看一个水果对象列表
它有类似的属性
public class Fruit : IFruit
{
public string name;
public int id;
}
Run Code Online (Sandbox Code Playgroud)
我假设我需要某种映射,如果我要使用泛型,因为我希望这适用于理想的IFruit接口(不确定是否可能)
提前致谢
给出以下类型:
public interface IFruit
{
String name { get; set; }
Int32 id { get; set; }
}
public class Fruit : IFruit
{
public String name { get; set; }
public Int32 id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想你可以这样做:
static IEnumerable<T> GetSomeFruit<T>(String xml)
where T : IFruit, new()
{
return XElement.Parse(xml)
.Elements("fruit")
.Select(f => new T {
name = f.Element("name").Value,
id = Int32.Parse(f.Element("id").Value)
});
}
Run Code Online (Sandbox Code Playgroud)
您可以这样称呼:
IEnumerable<Fruit> fruit = GetSomeFruit<Fruit>(yourXml);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7266 次 |
| 最近记录: |