【问题标题】:Find used types and members from a specific assembly从特定程序集中查找使用的类型和成员
【发布时间】:2017-10-22 15:13:36
【问题描述】:

我正在尝试创建一个 CQLinq 查询,它将为我提供来自解决方案其余部分正在使用的特定程序集的所有类型和/或成员。

我需要此信息,以便我可以移动/重构所有引用的类型/成员,并最终从解决方案中删除特定程序集(以及对它的所有引用)。

【问题讨论】:

    标签: ndepend


    【解决方案1】:

    为了获得最佳结果呈现,查询可以如下所示:

    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)}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 2013-04-23
      • 2023-03-05
      • 2011-06-09
      • 1970-01-01
      • 2011-06-13
      相关资源
      最近更新 更多