- 获取一个Assembly下的子类
var bases = Assembly
.GetExecutingAssembly()
.GetTypes()
.Where(item =>
item.IsSubclassOf(typeof(Base))
)
.Select(type =>
(Base)Activator.CreateInstance(type)
)
.ToList();- 获取所有Assembly下的子类
var bases = AppDomain
.CurrentDomain
.GetAssemblies()
.SelectMany(item =>
item.GetTypes()
)
.Where(item =>
item.IsSubclassOf(typeof(Base))
)
.Select(type =>
(Base)Activator.CreateInstance(type)
)
.ToList();
- 获取一个Assembly下的实现接口的类
var interfaceImplements = Assembly
.GetExecutingAssembly()
.GetTypes()
.Where(item =>
item.GetInterfaces().Contains(typeof(Interface))
)
.Select(type =>
(Interface)Activator.CreateInstance(type)
)
.ToList();- 获取所有Assembly下的实现接口的类
var interfaceImplements = AppDomain
.CurrentDomain
.GetAssemblies()
.SelectMany(item =>
item.GetTypes()
)
.Where(item =>
item.GetInterfaces().Contains(typeof(Interface))
)
.Select(type =>
(Interface)Activator.CreateInstance(type)
)
.ToList();版权声明:本文为yinyongxian原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。