我希望使用反射标识类的所有委托。我不想调用它们,只想确认一下。我想我可以这样使用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);
}这种方法是可能的,还是其他方法?
谢谢你的回答!
发布于 2011-07-12 20:44:33
委托只是一个(特殊的,编译器生成的)类,它可以在类中声明为嵌套类型,但请记住,它们也可以像普通类一样直接在命名空间中声明。
这将在给定类型t中找到所有嵌套类型,即委托:
private IEnumerable<Type> DelegatesDefinedInType(Type t)
{
var nestedTypes = t.GetNestedTypes();
return nestedTypes.Where(typeof(Delegate).IsAssignableFrom);
}https://stackoverflow.com/questions/6670759
复制相似问题