C# 如何将委托指向通过反射获得的方法

C# 如何将委托指向通过反射获得的方法,c#,reflection,delegates,C#,Reflection,Delegates,我动态加载程序集,如下所示: var assembly = Assembly.LoadFile("PathOFMyDll"); 无论如何,该程序集在类DynamicClass内具有静态方法Filter。因此,一旦我有了该程序集,我就执行该方法,如下所示: var filter = assembly.GetType("DyamicClass").GetMethod("Filter"); // that method accepts a object as parameter filte

我动态加载程序集,如下所示:

 var assembly = Assembly.LoadFile("PathOFMyDll");
无论如何,该程序集在类
DynamicClass
内具有静态方法
Filter
。因此,一旦我有了该程序集,我就执行该方法,如下所示:

 var filter = assembly.GetType("DyamicClass").GetMethod("Filter");

 // that method accepts a object as parameter
 filter.Invoke(null, new object[] { "test" });

现在我的问题是:

我有委托
委托bool FilterDelegate(对象项)为什么不可能使该类型的委托指向该方法,以便:

 FilterDelegate myPointerToMethodFilter = (FilterDelegate)assembly.GetType("DyamicClass").GetMethod("Filter");
 bool result = myPointerToMethodFilter("test");

注意,编译器仅在尝试编译时发出抱怨。我没有收到任何语法错误。

可以从
MethodInfo
对象创建委托,但强制转换是不够的

相反,请使用:

MethodInfo myMethodFilter = assembly.GetType("DyamicClass").GetMethod("Filter");
FilterDelegate myPointerToMethodFilter = (FilterDelegate)Delegate.CreateDelegate(typeof (FilterDelegate), myMethodFilter);