如何获得与IWpfTextView关联的EnvDTE.Document?

时间:2012-12-21 00:57:01

标签: c# .net visual-studio envdte

我有基于IWpfTextViewConnectionListener的扩展程序。我需要访问与我EnvDTE.Document相关联的IWpfTextView。我已经尝试存储_DTE.ActiveDocument,但这仅适用于之前尚未打开的文件(如果文件已经打开,则为null)。

如何获取正在显示的文本视图的文档对象?

1 个答案:

答案 0 :(得分:4)

IWpfTextView.TextBuffer,您可以获得ITextBuffer。从那里,您可以使用ITextDocumentFactoryService.TryGetTextDocument()来获取匹配的ITextDocument(如果存在)。然后,ITextDocument.FilePath为您提供文件的路径。

然后,您可以通过DTE2.Documents集合枚举以查找具有相同路径的打开文档。

有关ITextDocumentFactoryService的更多信息:http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.text.itextdocumentfactoryservice.aspx