我正在尝试创建一个CQLinq查询,它将为我提供解决方案其余部分使用的特定程序集的所有类型和/或成员。
我需要这些信息,这样我就可以移动/重构所有引用的类型/成员,并最终从解决方案中删除特定的程序集(以及对它的所有引用)。
发布于 2017-10-23 06:43:00
为了获得最佳的结果表示,查询可以如下所示:
let targets = Assemblies.WithName("SpecificAssemblyName").Single().ChildTypesAndMembers.ToHashSet()
let methodsUser = Application.Methods.UsingAny(targets)
let typesUser = Application.Types.UsingAny(targets)
from x in ((IEnumerable<IMember>)typesUser).Concat(methodsUser)
where !targets.Contains(x)
select new {
x,
called = x.IsMethod ? x.AsMethod.MethodsCalled.Intersect(targets).Concat(x.AsMethod.FieldsUsed.Intersect(targets)) :
x.AsType.TypesUsed.Intersect(targets)}

https://stackoverflow.com/questions/46875669
复制相似问题