【发布时间】:2015-06-03 08:41:09
【问题描述】:
我编写了以下查询以确定我的解决方案与其他程序集之间的依赖关系。我们有一个广泛使用的内部 Nuget 共享库的大型库,我想确保包含这些库 - 因此我在下面使用“t”来消除某些 3rd 方程序集,但包括我们的内部库。
这个查询很好用,但我意识到它只向我们显示依赖关系是方法调用的依赖关系。它不包括常量、枚举和结构。
如何增强下面的查询以向我们展示这些和任何其他依赖项的详细信息?
let t = Assemblies.WithNameWildcardMatchIn("xunit","RestSharp","NSubstitute","O2S*","EntityFramework","AxInterop*","AutoMapper","Autofac*","ADODB","mscorlib","System*", "Microsoft*","Infra*","Interop*").ToDictionary<IAssembly,String>(c=>c.Name)
from a in Application.Assemblies
from m in a.ChildMethods
from b in m.MethodsCalled
let isThirdParty = t.ContainsKey(b.ParentAssembly.Name)
select new { a,isThirdParty,m.ParentNamespace, m.ParentType,m.Name,DependsOnAssembly=b.ParentAssembly.Name, DependsOnNamespace=b.ParentNamespace,DependsOnParentType=b.ParentType,DependsOnMethod=b.Name}
【问题讨论】:
标签: ndepend