vs2010自动化:获取EnvDTE.CodeElement的文本值

Mas*_*ity 7 .net c# code-generation visual-studio-2010 visual-studio

所以我正在玩EnvDTE,和EnvDTE.CodeModelAPI,我想知道是否有办法获得由a表示的文本值CodeElement.

假设我有一个CodeAttribute,是否有某种方法来获得代表string的东西CodeAttribute,即[MyAttribute(value="myvalue")].

我知道可以使用它的各种属性来重构代码CodeElement,至少在某些情况下,但是对于某些事情来说,似乎更容易获得文本.

谢谢!

Jar*_*Par 4

CodeElement接口具有 和 属性StartPointEndPoint它们表示缓冲区内元素的开始和结束。它们包含行号/列,可以传递给类似的方法IVsTextLines.GetLineText,并返回您正在寻找的值。

要获得IVsTextLines给定的,CodeElement您可以执行以下操作

CodeElement ce = ...;
TextDocument td = ce.StartPoint.Parent;
IVsTextLines lines = td as IVsTextLines;
Run Code Online (Sandbox Code Playgroud)