Visual Studio插件中可用类型的访问列表
本文关键字:类型 访问 列表 Studio 插件 Visual | 更新日期: 2023-09-27 18:14:37
是否有一种方法可以访问在Visual Studio解决方案中加载的项目中可用的类型(类,接口等及其元数据)?
更具体地说,我正在尝试开发一个简单的Visual Studio Add In来提供"Go To Implementation"功能:
https://bitbucket.org/jbubriski/go-to-implementation/我意识到这存在于其他生产力的插件/扩展中,但我做了一个骨架,所以我不必处理其他添加的"功能"的减速,挂起和崩溃。
如果您查看源代码,我可以使用非常基本和脆弱的方法获得当前选择的文本。给定选择,我基本上假设它是一个接口,去掉'I',并对文件名以"'TypeName.cs"
结尾的ProjectItems
进行解决方案范围的搜索。
是否有一些我可以访问的Visual Studio维护的智能感知类型的内部列表?如果这样说就好了:
var vsType = VS.GetLocalType("TypeName")
然后访问
vsType.FileName
再进一步是
foreach(var vsType in VS.GetlocalTypes())
{
if(vsType.Implements.Contains("IInterfaceName"))
{
// Found something that implements my interface!
}
}
任何想法?
不确定本地VS插件的实现,但如果你使用DevExpress。CodeRush, goto定义功能应该基于源文件中的当前位置,并做这样的事情来检索对声明类型的引用:((TypeReferenceExpression)CodeRush.Source.Active).GetDeclaringType()
注:我知道我没有回答你的问题,但希望这能给你一个寻找解决方案的方向。
如果有时间,稍后再详细介绍,但请参阅http://msdn.microsoft.com/en-us/library/system.componentmodel.design.ityperesolutionservice.aspx。