使用 Visual Studio 可扩展性 SDK 时,我有一个ProjectItem
. 我正在尝试从该项目中获取文本,以便可以对其进行一些替换。我看到这样做的方式是使用DTE2.ActiveDocument.Selection
. 但是,这DTE2.ActiveDocument
不是我需要的文档,所以我不能使用它。当我尝试访问ProjectItem.Document
包含Selection
属性的对象时,文档始终为空,并且出现空引用异常。我还尝试了以下不起作用的方法(即Document
有效,但Selection
属性为空):
Document document = null;
if (!projectItem.IsOpen)
document = projectItem.Open().Document;
我尝试了以下操作,但它没有给我正确的文档,因为我正在处理的 ProjectItem 不是活动文档。有没有办法实现类似于以下代码的东西ProjectItem.Document
?
TextSelection selection = DTE2.ActiveDocument.Selection;
selection.SelectAll();
string text = selection.Text;
selection.Delete();
//Do replacements
selection.Insert(text);
总而言之,如何从 ProjectItem 实例中获取 TextSelection 实例?