Visual studio 从扩展运行时,如何获取解决方案名称?

Visual studio 从扩展运行时,如何获取解决方案名称?,visual-studio,mef,Visual Studio,Mef,我正在使用托管可扩展性框架(MEF)用C#编写一个扩展。 如何获取当前打开的解决方案名称或项目名称 我一直在深入挖掘的类是IWPTextView,但我没有找到它。如果程序集中有一个Package类,可以执行以下操作: DTE2=Package.GetGlobalService(typeof(SDTE))作为DTE2; 字符串fullName=dte.Solution.fullName 否则,您可以通过以下方式获取DTE: DTE DTE=System.Runtime.InteropService

我正在使用托管可扩展性框架(MEF)用C#编写一个扩展。
如何获取当前打开的解决方案名称或项目名称


我一直在深入挖掘的类是IWPTextView,但我没有找到它。

如果程序集中有一个Package类,可以执行以下操作:

DTE2=Package.GetGlobalService(typeof(SDTE))作为DTE2; 字符串fullName=dte.Solution.fullName

否则,您可以通过以下方式获取DTE: DTE DTE=System.Runtime.InteropServices.Marshal.GetActiveObject(“VisualStudio.DTE”)作为DTE; 字符串fullName=dte.Solution.fullName

我看到人们谈论一种更“MEF”导向的方式来获得DTE,但我并没有尝试过

一旦拥有DTE对象,就可以使用解决方案遍历项目

参考: 参考: