我正在尝试创建一个 VS 包,其中我已将菜单命令添加到上下文菜单中,因此当您右键单击解决方案资源管理器中的某个项目时它会出现。现在单击命令时,我想显示一个包含项目详细信息的弹出窗口,您可以在其上单击鼠标右键并调用该命令。
现在我将如何获得有关所选项目的信息?我可以使用任何服务来获取有关该项目的任何详细信息吗?
我正在尝试创建一个 VS 包,其中我已将菜单命令添加到上下文菜单中,因此当您右键单击解决方案资源管理器中的某个项目时它会出现。现在单击命令时,我想显示一个包含项目详细信息的弹出窗口,您可以在其上单击鼠标右键并调用该命令。
现在我将如何获得有关所选项目的信息?我可以使用任何服务来获取有关该项目的任何详细信息吗?
private static EnvDTE80.DTE2 GetDTE2()
{
return GetGlobalService(typeof(DTE)) as EnvDTE80.DTE2;
}
private string GetSourceFilePath()
{
EnvDTE80.DTE2 _applicationObject = GetDTE2();
UIHierarchy uih = _applicationObject.ToolWindows.SolutionExplorer;
Array selectedItems = (Array)uih.SelectedItems;
if (null != selectedItems)
{
foreach (UIHierarchyItem selItem in selectedItems)
{
ProjectItem prjItem = selItem.Object as ProjectItem;
string filePath = prjItem.Properties.Item("FullPath").Value.ToString();
//System.Windows.Forms.MessageBox.Show(selItem.Name + filePath);
return filePath;
}
}
return string.Empty;
}
上面的函数将返回所选项目(文件)的完整路径。基本上从 DTE2 实例中获取灵魂资源管理器,您将从中获取有关解决方案资源管理器的所有信息。