如何将C#中反射获取的方法传递给接受该方法作为委托的方法?

the*_*drs 6 c# reflection methods attributes delegates

我意识到标题需要不止一次阅读才能理解...... :)

我实现了一个自定义属性,我应用于我的类中的方法.我应用属性的所有方法都有相同的签名,因此我为它们定义了一个委托:

public delegate void TestMethod();
Run Code Online (Sandbox Code Playgroud)

我有一个接受该委托作为参数的结构

struct TestMetaData
{
  TestMethod method;
  string testName;
}
Run Code Online (Sandbox Code Playgroud)

是否有可能从反射中获得具有自定义属性的方法并将其传递给结构中的'方法'成员?

我知道你可以调用它,但我认为反射不会给我从我的类中可以强制转换为TestMethod委托的实际方法.

Ree*_*sey 11

通过Reflection获得MethodInfo后,可以使用Delegate.CreateDelegate将其转换为Delegate,然后使用Reflection将其直接设置为结构的属性/字段.