获取Enumerable.DefaultIfEmpty的方法信息
本文关键字:方法 信息 DefaultIfEmpty Enumerable 获取 | 更新日期: 2023-09-27 17:59:18
我正在构建一些Linq表达式,并试图获得IEnumerable.DefaultIfEmpty
的MethodInfo(http://msdn.microsoft.com/en-us/library/bb360179.aspx)。这似乎是一项简单的任务,但我不知道为什么它不起作用。
typeof(Enumerable).GetMethod("DefaultIfEmpty", new[] { typeof(IEnumerable<>) });
typeof(Enumerable).GetMethod("DefaultIfEmpty", new[] { typeof(IEnumerable<>).MakeGenericType(typeof(WorkitemListModel)) });
老实说,获得泛型方法是一件痛苦的事。我不知道有什么比使用更好的方法了
var method = typeof(Enumerable).GetMethods()
.Where(m => m.Name == "DefaultIfEmpty")
.Where(m => m.GetParameters().Length == 1)
.Single();
要调用GetMethod
,您必须具有完全正确的参数类型,包括该参数的正确泛型类型参数。一旦你有了一次,你就可以做到,但在那之前,我认为以上就是所有可用的:(