C# 使用MethodInfo识别代表

C# 使用MethodInfo识别代表,c#,reflection,delegates,C#,Reflection,Delegates,我想使用反射识别一个类的所有委托。我不想调用它们,只要识别。我想我可以这样使用getMembers(): Type t = myType; MemberInfo[] mia = t.GetMembers(BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic).OrderBy(item => item.Name).ToArray(); foreach (MemberInfo m in mia) { //F

我想使用反射识别一个类的所有委托。我不想调用它们,只要识别。我想我可以这样使用
getMembers()

Type t = myType;
MemberInfo[] mia = t.GetMembers(BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic).OrderBy(item => item.Name).ToArray();
foreach (MemberInfo m in mia)
{
    //Find delegates
}
编辑:代表示例:

class ClassTest
{
    public delegate void SampleEventHandler(object sender, EventArgs e);
}
用这种方法是可能的,还是另一种

谢谢你的回答

委托只是一个(特殊的、编译器生成的)类,可以在类内部声明为嵌套类型,但请记住,它们也可以像普通类一样直接在命名空间中声明

这将找到给定类型
t
中的所有嵌套类型,它们是委托:

private IEnumerable<Type> DelegatesDefinedInType(Type t) 
{
    var nestedTypes = t.GetNestedTypes();    
    return nestedTypes.Where(typeof(Delegate).IsAssignableFrom);
}
private IEnumerable DelegatesDefinedInType(类型t)
{
var nestedTypes=t.GetNestedTypes();
返回nestedTypes.Where(typeof(Delegate).IsAssignableFrom);
}

你所说的所有代表是什么意思?你所说的“一个班级的代表”是什么意思?您能给出一个您试图检测什么的示例吗?您想识别与方法签名匹配的委托类型吗?还是在类中定义的委托?你的问题我不太清楚。这应该对你有用:一个帖子就足够了。。。