给出以下(最小)类:
public class TestEvents
{
public delegate void MyDelegate(params string[] data);
public TestEvents()
{
}
}
如果从程序集中检索表示此类的Type
对象,如何识别此类中定义的所有嵌套委托?我可以找到很多关于如何通过反射来调用委托的信息,但是没有关于如何从开头的Type
对象中获取合适的对象的任何信息(没有知道委托名称)。
答案 0 :(得分:1)
您必须遍历嵌套类型并测试它们是否来自MulticastDelegate
。
var delegates = typeof(TestEvents).GetNestedTypes().Where(x => x.BaseType == typeof(MulticastDelegate));
foreach(var del in delegates)
Console.WriteLine(del.Name);