在VisualStudio DTE中,如何获取ActiveDocument的内容?

我在VisualStudio中编写脚本,并试图获取当前ActiveDocument的内容。

这是我目前的解决方案:

var visualStudio = new API_VisualStudio_2010(); var vsDTE = visualStudio.VsAddIn.VS_Dte; var document = (Document)vsDTE.ActiveDocument; var textDocument = (TextDocument)document.Object("TextDocument"); var editPoint = textDocument.StartPoint.CreateEditPoint(); var text = editPoint.GetText(textDocument.EndPoint.CreateEditPoint()); panel.clear().add_SourceCodeViewer() .set_Text(text, document.FullName.extension()); 

这是最好的方法吗?

我得到了解决方案: 因为ActiveDocument.Text()太容易了…

这对我有用

 protected DTE2 dte; dte2 = (EnvDTE80.DTE2)GetService(typeof(EnvDTE.DTE)); public string GetCurrentTextFile(){ TextDocument doc = (TextDocument)(dte.ActiveDocument.Object("TextDocument")); var p = doc.StartPoint.CreateEditPoint(); string s = p.GetText(doc.EndPoint); return s; } 

你能尝试一下吗?

 Dim objSelection As TextSelection = DTE.ActiveDocument.Selection