繁体   English   中英

从Visual Studio扩展生成代码

[英]Generate Code from a Visual Studio Extension

我有一个项目,基于元数据生成文本(表示一个接口和一个类)。 我想采用这个生成的代码并将其作为新类和接口直接插入到特定项目和目录下当前打开的解决方案中。 我将创建将生成类的菜单工具,但我不知道该怎么做是从我的自定义Visual Studio扩展中获取对以下项的访问:

  1. 迭代当前的解决方案并找到一个项目来将生成的代码转储到其中。
  2. 在Visual Studio中打开一个新文件窗口,将生成的文本从我的工具直接注入该窗口。
  3. 在我的自定义扩展中,在当前解决方案中的特定项目中创建一个新文件夹。

编辑 - 澄清我需要打开一个新文件(例如右键单击一个项目 - >添加 - >新类)并从我的自定义Visual Studio扩展中插入文本。

谢谢

要从Visual Studio扩展(ToolWindowPane)创建新文件,请首先使用GetService方法:

// Get an instance of the currently running Visual Studio IDE
DTE dte = (DTE)GetService(typeof(DTE));

其次,确保解决方案当前处于打开状态,如果没有打开解决方案,则文件生成将无效:

string solutionDir = System.IO.Path.GetDirectoryName(dte.Solution.FullName);

第三,从DTE对象生成新文件:

dte.ItemOperations.NewFile(@"General\Visual C# Class", "ObjectOne", EnvDTE.Constants.vsViewKindTextView);

创建新文件后,使用以下代码访问该文件的文本并将其替换为生成的文本:

TextSelection txtSel = (TextSelection)dte.ActiveDocument.Selection;
TextDocument txtDoc = (TextDocument)dte.ActiveDocument.Object("");

txtSel.SelectAll();
txtSel.Delete();
txtSel.Insert("Hello World");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM