不区分大小写的GetMethod?
foreach(var filter in filters) { var filterType = typeof(Filters); var method = filterType.GetMethod(filter); if (method != null) value = (string)method.Invoke(null, new[] { value }); }
是否有一种不区分大小写的方法来获取方法?
是的,使用BindingFlags.IgnoreCase:
var method = filterType.GetMethod(filter, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance);
注意可能的歧义,你会得到一个AmbiguousMatchException。
要获得一个类似于GetMethod(filter)的方法,除了忽略您需要的情况:
var method = filterType.GetMethod(filter, BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance| BindingFlags.IgnoreCase);
这不起作用:var method = filterType.GetMethod(filter,BindingFlags.IgnoreCase);
看看GetMethod的这个变种,特别注意其中一个可能的BindingFlags
是IgnoreCase
。