C#:选择当前活动的文件

时间:2013-07-03 07:51:07

标签: c# visual-studio-2012 add-in

所以我正在尝试为Visual Studio 2012创建一个加载项,我被卡住了。所以这就是我被困住的地方。

让我们说在Visual Studio中我正在处理一个文件。假设它叫做Default.aspx。我的加载项的工作方式如下:当您按下工具栏上的按钮时,它会将文件中的所有内容复制到字符串变量中并使用它来执行某些操作。

那么我可以使用哪个功能来“选择”当前打开的文件?我可以在visual studio中打开4-5个选项卡,但我只想选择当前正在处理的文件,在此上下文中将是Default.aspx。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

您需要先获得对IDE的引用。

DTE2 IDE = (DTE2)GetService(typeof(DTE)));

从DTE2参考中,您可以访问活动文档

Document activeDoc = IDE.ActiveDocument;

要从文档对象获取文本,您需要以下内容:

// Get a reference to the text document
TextDocument textDoc = activeDoc.Object("TextDocument");

// Create a reference point at the start of the document.
EnvDTE.EditPoint startPoint = textDoc.StartPoint.CreateEditPoint;

// Get all the text from our starting point to the end of the document.
string allText = startPoint.GetText(textDoc.EndPoint);

有关DTE2接口的更多详细信息,请参阅此MSDN Page