我有一个采用ApiController Type参数的方法:
private List<MethodInfo> GetMethods<T>()
{
...
}
我正在尝试使用以下内容创建一个传递给此方法的Type:
Type controller = Assembly.GetCallingAssembly().GetTypes().Where(
type => type.Name.Contains(schema) && type.IsSubclassOf(typeof(ApiController))).First();
var collection = GetMethods<controller>();
好吧,“无法找到类型或名称空间控制器......” 让我疯了!
我确信有一些我在这里看不到的容易,但我无法弄明白。
答案 0 :(得分:1)
通用类型参数必须是编译器可识别的类型,而不是在运行时创建的类型。 controller
是变量名,不是编译器在编译时可以识别的类型,因此是错误。 http://msdn.microsoft.com/en-us/library/0zk36dx2.aspx