【发布时间】:2011-11-15 18:49:11
【问题描述】:
有没有办法在 Visual Studio 的解决方案中访问已加载项目中可用的类型(类、接口等及其元数据)?
更具体地说,我正在尝试开发一个简单的 Visual Studio 插件来提供“转到实现”功能:
https://bitbucket.org/jbubriski/go-to-implementation/
我意识到这存在于其他生产力插件/扩展中,但我正在制作一个简单的框架,因此我不必处理其他添加的“功能”导致的减速、挂起和崩溃.
如果您查看源代码,我可以使用非常基本且脆弱的方法获取当前选定的文本。鉴于选择,我基本上假设它是一个接口,去掉“I”,然后在解决方案范围内搜索 ProjectItems,其中文件名以 "\TypeName.cs" 结尾。
是否有一些 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!
}
}
有什么想法吗?
【问题讨论】:
标签: c# visual-studio visual-studio-2010 add-in visual-studio-addins