从方法参数获取类型的列表

时间:2013-12-09 23:40:10

标签: c# reflection

我想创建一个方法,在参数中将使用Type作为通用列表的类型 例如:

MyClass something = new MyClass();
Type myType = something.GetType();

public void createList(Type type)
{
List<type> myList = new List<type>();   // <-- How can I achieve that?
...
}

有什么想法吗? :)

1 个答案:

答案 0 :(得分:1)

首先让你的核心方法变得通用,如下所示:

public void createList<T>()
{
    List<T> myList = new List<T>();
    ...
}

并提供一个非泛型的重载,它使用反射来动态调用泛型方法:

public void createList(Type t)
{
    this.GetType()
        .GetMethod("createList", Type.EmptyTypes)
        .MakeGenericMethod(t)
        .Invoke(this, null);
}