如何列出 .NET 程序集中的所有委托
How to list all delegates from a .NET assembly
要获取在特定 .NET 程序集和给定命名空间中定义的 classes 的列表,我会执行如下操作:
foreach (var type in assembly.GetTypes()
.Where(t => t.IsClass && t.Namespace == @namespace))
{
//process type
}
这个returns classes和delegates,所以如果有像
这样的delegate声明
public delegate void MyDelegate()
MyDelegate
也是上面循环处理的
我只想遍历委托类型。
我希望类型 class 有类似 IsDelegate
属性 的东西,但有 none.
我看到代表委托的类型具有基本类型 System.MulticastDelegate
- 它是正确的过滤器还是我遗漏了什么?
foreach (var type in assembly.GetTypes()
.Where(t => t.IsClass && t.Namespace == @namespace && t.IsDelegate()))
{
//process delegate type
}
public static class TypeExtensions
{
public static bool IsDelegate(this Type type)
{
return type.BaseType == typeof(MulticastDelegate);
}
}
要获取在特定 .NET 程序集和给定命名空间中定义的 classes 的列表,我会执行如下操作:
foreach (var type in assembly.GetTypes()
.Where(t => t.IsClass && t.Namespace == @namespace))
{
//process type
}
这个returns classes和delegates,所以如果有像
这样的delegate声明public delegate void MyDelegate()
MyDelegate
也是上面循环处理的
我只想遍历委托类型。
我希望类型 class 有类似 IsDelegate
属性 的东西,但有 none.
我看到代表委托的类型具有基本类型 System.MulticastDelegate
- 它是正确的过滤器还是我遗漏了什么?
foreach (var type in assembly.GetTypes()
.Where(t => t.IsClass && t.Namespace == @namespace && t.IsDelegate()))
{
//process delegate type
}
public static class TypeExtensions
{
public static bool IsDelegate(this Type type)
{
return type.BaseType == typeof(MulticastDelegate);
}
}