我有一个IEnumerable<T>
,我想打电话给Enumerable.Contains通过反射的方法。我只是努力让语法正确。这是我目前拥有的:
var containsMethod = typeof(Enumerable).GetMethod("Contains",
new[] {
typeof(IEnumerable<T>),
typeof(T)
});
这只是返回一个空值。
正确的获取方法是什么MethodInfo
?
获取 MethodInfo 的正确方法是什么?
你必须找到generic方法 - 不幸的是有点痛苦 - 然后用适当的参数构造它。在这种情况下,您知道只有 2 个Contains
重载,而你想要的有两个参数,所以你可以使用:
var method = typeof(Enumerable).GetMethods()
.Where(m => m.Name == "Contains")
.Single(m => m.GetParameters().Length == 2)
.MakeGenericMethod(typeof(T));
然后您应该能够适当地调用它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)