如何从扩展程序运行时获取解决方案名称?

Jer*_*ler 2 mef visual-studio

我正在使用Managed Extensibility Framework(MEF)编写C#中的扩展.
如何获取当前打开的解决方案名称或项目名称?

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

小智 6

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

DTE2 = Package.GetGlobalService(typeof(SDTE))为DTE2; string fullName = dte.Solution.FullName;

否则你可以通过以下方式获得DTE:DTE dte = System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE")作为DTE; string fullName = dte.Solution.FullName;

而且我看到人们谈论更加"以MEF"为导向的获得DTE的方式,但我没有尝试过..

获得DTE对象后,您可以使用解决方案遍历项目.

参考:VSIX:获取DTE对象 参考:http://msdn.microsoft.com/en-us/library/envdte.solution.aspx