|
|
1
44
正如其他人所说,扩展方法是编译器的魔法,你可以一直使用vs右键单击,转到定义,找到实现静态方法的真正类型。
从那里,它得到
相当毛茸茸
.
一旦你找到方法,你必须
以下是完整的工作样本:
|
|
|
2
10
扩展方法实际上只是水下的静态方法。像foo.frob这样的扩展方法调用( 争论 )真的只是一个班级。frob(foo, 争论 )。在Where方法的情况下,您要查找System.Linq.Enumerable.Where。因此,获取可枚举的类型并在其上调用Where。 |
|
3
2
我有点晚了,但是如果你需要调用一个不知道的IEnumerable wich类型的linq扩展,这可以帮助你。
如果不为空,则可能测试obj
对我来说,这很管用。 |
|
|
4
1
您的代码示例有点混乱…除非myObject是可枚举的。 使用反射,您必须调用System.Linq.Enumerable上的Where,并传入要在何处执行的Enumerable。 |
|
|
5
0
扩展方法是一种C编译器技巧,它们不存在于相关类型中。它们(这些特定的类)存在于system.linq名称空间中的静态类中。我建议在Reflector中反射这个,然后调用这些类型的反射。 |