[英]How to get all types in solution projects?
我有一個解決方案和多個 .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
層了
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.