我有一个解决方案和多个.net核心项目。
WebApi
专案参考Business
,但并未参考Data
专案。所以我想在实现的解决方案中获取所有类型IMyInterface
。所有项目都有实现的类IMyInterface
。我想找到所有的人。
我在WebApi项目中调用以下代码:
var m = AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(name => name.GetTypes())
.Where(type => typeof(IMyInterface).IsAssignableFrom(type))
.ToList();
但找不到类型。
我如何找到?
您应该获得所有这样的组装项目
public Assembly[] GetAssemblies()
{
var dataAssembly = typeof(AnClassInDataLayer).Assembly;
var businessAssembly = typeof(ACLassInBusinessLayer).Assembly;
var webApiAssembly = typeof(Startup).Assembly;
return new Assembly[] { businessAssembly , dataAssembly, webApiAssembly };
}
然后
var m = GetAssemblies()
.SelectMany(name => name.GetTypes())// or .SelectMany(a => a.ExportedTypes)
.Where(type => typeof(IMyInterface).IsAssignableFrom(type))
.ToList();
更新资料
在.Net Core中,如果WebApi
项目引用的business
图层和Business
图层引用的是Data
图层,则在WebApi
图层中可以访问Data
图层
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句