反思:如何获得泛型方法?
嗨,
假设我有以下两种方法在类中:
public void MyMethod(object val) {}
public void MyMethod<T>(T val) {}
通过反射,我可以得到第一个方法,如下所示:
Type[] typeArray = new Type[1];
typeArray.SetValue(typeof(object), 1);
var myMethod = myInstance.GetType().GetMethod("MyMethod", typeArray);
但如何才能得到第二个通用方法?
Possible Duplicates:
How to use reflection to call generic Method?
Select Right Generic Method with Reflection
Hi there
Let's say I have two following two methods in a class:
public void MyMethod(object val) {}
public void MyMethod<T>(T val) {}
With reflection, I could get the first Method like this:
Type[] typeArray = new Type[1];
typeArray.SetValue(typeof(object), 1);
var myMethod = myInstance.GetType().GetMethod("MyMethod", typeArray);
But how can I get the second, generic method?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我会这样做:
我们正在寻找一种名为“MyMethod”的方法,它是一种通用方法,具有没有约束的单个类型参数,以及一个与类型参数相同类型的“正常”参数。
显然,如果您不希望非常精确,您可以只做最少的工作来消除歧义,例如:
I would do it like this:
We're looking for a method called "MyMethod" that is a generic method with a single type-parameter having no constraints, and one 'normal' parameter of the same type as the type-parameter.
Obviously, if you're not looking to be very precise, you can just do the bare minimum to disambiguate, such as: