作为我的应用程序的一部分,我有一个接收MethodInfo的函数,需要对它进行特定的操作,这取决于该方法是否为"扩展方法".
我检查了MethodInfo类,我找不到任何显示该方法是扩展名的IsExtension属性或标志.
有谁知道如何从方法的MethodInfo中找到它?
您可以通过检查ExtensionAttribute是否应用于方法来调用MethodInfo实例上的IsDefined方法来查找它:
bool isExtension=someMethod.IsDefined(typeof(ExtensionAttribute),true);
基于
C#中的F#扩展方法
似乎编译表单上有一个属性.那么看看该方法是否具有此属性:
http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.extensionattribute.aspx