1

是否可以创建一个通用的 IList 方法?这是我希望它的实现方式:

List<Entity1> lstEnt1 = _myClass.GenerateListFromXml<Entity1>(@"C\test.xml");
List<Entity2> lstEnt2 = _myClass.GenerateListFromXml<Entity1>(@"C\test.xml");

这是我到目前为止得到的:

    public List<XMLModule> RetrieveListFromXml(string appSetting, string module)
    {
        throw new NotImplementedException();
    }

我想将其更改为XMLModule可以在实体中传递的通用的。

在这方面需要帮助。谢谢!

4

3 回答 3

4
public List<T> RetrieveListFromXml<T>(string appSetting, string module)
{
    throw new NotImplementedException();
}
于 2012-11-24T09:21:37.283 回答
4

很简单,只需使用通用 T 类型,然后决定内部行为。

public List<T> RetrieveListFromXml<T>(string appSetting, string module)
{
    throw new NotImplementedException();
}
于 2012-11-24T09:21:48.313 回答
0

你可以使用这样的东西(我忽略了你的 appSetting/module 参数,并基于你在顶部使用的 XML 文件路径)

    public static List<T> RetrieveListFromXml<T>(string xmlFilePath)
    {
        var serializer = new XmlSerializer(typeof(List<T>));
        object result;
        using (var stream = new FileStream(xmlFilePath, FileMode.Open))
        {
            result = serializer.Deserialize(new FileStream(xmlFilePath, FileMode.Open));
        }
        return (List<T>)result;
    }
于 2012-11-24T09:26:26.267 回答