将XML转换为接口类型对象的通用列表

时间:2018-06-28 13:39:52

标签: c# .net

我已经创建了一个通用集合,我需要填写XML文档中声明的对象,但是问题是对象类型是IProduct(即接口)。

public static List<IProduct> prod = new List<IProduct>();

要读取的XML文件:

<?xml version="1.0" encoding="UTF-8" standalone="true"?>
-<Products>
-<Product Name="Buttermilk">
<Price>135</Price>
<Quantity>5</Quantity>
</Product>
-<Product Name="Cooked sausages">
<Price>135</Price>
<Quantity>5</Quantity>
</Product>
-<Product Name="Red meat">
<Price>12</Price>
<Quantity>5</Quantity>
</Product>
-<Product Name="Shubat">
<Price>12</Price>
<Quantity>5</Quantity>
</Product>

请给我建议,如何使用LINQ填写列表。

1 个答案:

答案 0 :(得分:0)

我认为最简单的方法是使用XmlSerializer:

           XmlSerializer serializer = new XmlSerializer(typeof(List<MyClass>));

           using(FileStream stream = File.OpenWrite("filename"))
          {
                 List<MyClass> list = new List<MyClass>();
                 serializer.Serialize(stream, list);
           }

           using(FileStream stream = File.OpenRead("filename"))
           {
                  List<MyClass> dezerializedList = (List<MyClass>)serializer.Deserialize(stream);
            }