Q
如何获得类类型
5
A
回答
1
如果你只有一个指定为Type的Type,你必须建立泛型方法,并通过反射来调用它。
Type thisType = this.GetType(); // Get your current class type
MethodInfo doSomethingInfo = thisType.GetMethod("DoSomething");
MethodInfo concreteDoSomething = doSomethingInfo.MakeGenericMethod(typeOfGeneric);
concreteDoSomething.Invoke(this, null);
3
您使用反射(假设DoSomething()
是静态的):
var methodInfo = typeOfGeneric.GetMethod("DoSomething");
methodInfo.Invoke(null, null);
编辑:你的问题的变化,而我写的答案。上面的代码是一个非泛型方法,在这里它是一个通用类:
var constructedType = someType.MakeGenericMethod(typeOfGeneric);
var methodInfo = constructedType.GetMethod("DoSomething");
methodInfo.Invoke(null, null);
这里,它是一个非通用类的静态泛型方法:
var typeOfClass = typeof(ClassWithGenericStaticMethod);
MethodInfo methodInfo = typeOfClass.GetMethod("DoSomething",
System.Reflection.BindingFlags.Static | BindingFlags.Public);
MethodInfo genericMethodInfo =
methodInfo.MakeGenericMethod(new Type[] { typeOfGeneric });
genericMethodInfo.Invoke(null, new object[] { "hello" });
+0
我认为你没有得到我的问题。如何传递Type对象作为泛型参数? – wassertim 2010-03-26 15:52:22
相关问题
- 1. 如何获得类型
- 2. 如何获得泛型类
- 3. 如何获得类从特定类型
- 4. 如何获得类引用泛型类
- 5. 如何获得泛型类的类?
- 6. 如何获得类的类型在Java
- 7. 如何获得泛型类型的实际类型?
- 8. 如何从对象类型获得泛型类型
- 9. 如何获得泛型类型的类型参数?
- 10. 获得C#类型
- 11. 获得同类型
- 12. 获得“真实”类的泛型类型
- 13. Java:获得泛型类型
- 14. 如何获得dnlib中类的泛型类型?
- 15. 如何获得内部类型泛型类的
- 16. 如何获得泛型类型类在Java中
- 17. 如何获得MIME类型的文件扩展(内容类型)
- 18. 如何获得对应于原始类型的引用类型?
- 19. 如何获得可空类型的字符串类型
- 20. 反射:如何获得by-ref类型的基础类型
- 21. 如何获得派生类的子类型在基类中
- 22. 如何获得一个类扩展的所有类的类型[]
- 23. 如何获得专门类型的ClassTag?
- 24. 如何获得类型的精度?
- 25. 如何获得某种类型
- 26. 如何获得对象类型
- 27. 如何获得动态IQueryable类型
- 28. 如何获得当前的HDD类型?
- 29. 如何获得网络接口类型
- 30. 如何获得内存类型?
你的问题不是很清楚。你能举一个更具体的例子吗? – 2010-03-26 15:49:03
我们将需要比这更多的细节...也许一个代码示例或两个会有所帮助。 – 2010-03-26 15:49:22
@Jon Skeet,真的,你不能同时编辑一个男人的帖子,试图澄清你的想法是怎么样的,并抱怨帖子不清楚...... :-) – 2010-03-26 15:51:08