创建通用IList <t>方法</t>

时间:2012-11-24 09:18:48

标签: c#

是否可以创建通用的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更改为我可以在实体中传递的通用名称。

需要帮助这些家伙。谢谢!

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:4)

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

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

答案 2 :(得分: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;
    }