给定一个表示特定类/字段/属性的字符串(例如 MyNameSpace.MyClass
或 System.String.Length
),我怎样才能通过编程使Visual Studio跳转到该类/字段/属性(即,使Visual Studio执行与在代码编辑器中键入引用并按下F12所发生的相同操作)?
给定一个表示特定类/字段/属性的字符串(例如 MyNameSpace.MyClass
或 System.String.Length
),我怎样才能通过编程使Visual Studio跳转到该类/字段/属性(即,使Visual Studio执行与在代码编辑器中键入引用并按下F12所发生的相同操作)?
您可能需要执行以下操作。
IVsObjectManager2
接口 (由 SVsObjectManager
对象实现)IVsObjectManager2.FindLibrary
获取 C# 库,并将结果转换为 IVsSimpleLibrary2
。使用正确的 VSOBSEARCHCRITERIA2
调用 IVsSimpleLibrary2.GetList2
,以在解决方案的项目中定位符号。
如果生成的 IVsSimpleObjectList2
具有 GetItemCount()
==1
,并且 CanGoToSource
与 VSOBJGOTOSRCTYPE.GS_DEFINITION
返回 pfOK==true
,则使用 GoToSource
方法跳转到源代码。
否则,不要跳转到源代码,只需向用户显示可能的选项。您将能够使用 IVsFindSymbol
接口 (由 SVsObjectSearch
对象实现) 实现此功能。
GetItemCount() == 1
并且 CanGoToSource
返回 false,有没有其他方法可以打开对象浏览器窗口并定位到该项,而不是使用 GoToSource
? - Omer RavivVisualStudioServices
是从哪里来的? - smwikipedia