gpt4 book ai didi

envdte - 如何在 EnvDTE 中仅获取当前项目中定义的类?

转载 作者:行者123 更新时间:2023-11-30 23:59:22 27 4
gpt4 key购买 nike

我有一个当前遵循的 Vs2010 包

EnvDTE=>Solution=>Projects=>CodeModel=>CodeElements

递归地执行以下操作并找到类
var q = elements.Cast<CodeElement>()
.Where(x => x is CodeClass || x is CodeNamespace)
.Where(x => x.Name.StartsWith("System") == false)
.Where(x=>x.Name.StartsWith("Infragistics")==false)
.Where(x=>x.Name.StartsWith("Microsoft")==false)
.Where(x => x.Name.StartsWith("ICSharpCode")==false);

它运行得相当慢,有没有办法将此查询/搜索限制为仅在当前项目中定义的类/类型?

据我了解 FileCodeModel既无用也不合适,因为这需要打开每个项目项。

最佳答案

文章中描述了我用于导航 Project.CodeModel 或 ProjectItem.FileCodeModel 的代码元素的方式:

如何:从 Visual Studio .NET 宏或加载项导航文件的代码元素
http://www.mztools.com/articles/2006/MZ2006008.aspx

如果性能是一个问题,请尝试避免 LINQ 层是否可以提高性能。除此之外没有什么可做的,因为 EnvDTE 返回的 CodeElements 集合返回所有代码元素,然后在您进行过滤时返回。

关于envdte - 如何在 EnvDTE 中仅获取当前项目中定义的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3560823/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com