将Type变量作为泛型类型参数传递给静态类

时间:2013-10-21 22:27:51

标签: c# generics reflection

我有以下静态类

public static class MyFoo<T> where T : class
{
    public static IBar<T> Begin()
    {
        return new Bar<T>();
    }
}

在其他地方,我有一个System.Type变量,我需要将其作为Generic Type参数传入,理想情况是:

public void MyFunction(Type type)
{
     MyFoo<type>.Begin();
}

我知道通过反射可以返回MyFoo的实例(如果我使它非静态),但这不是理想的。无论如何将类型作为Generic Type参数传递给MyFoo静态类?

1 个答案:

答案 0 :(得分:4)

不能这样做。第二个示例中type变量的值仅在运行时中已知。第一个示例中的T类型参数必须才能在编译时解析

相反,请查看Activator.CreateInstance()