c# - vs201 0 auto 化: Get the text value of a EnvDTE. CodeElement

标签 c# .net visual-studio visual-studio-2010 code-generation

所以我正在研究 EnvDTEEnvDTE.CodeModel API,我想知道是否有办法获取由 a 表示的文本值代码元素

假设我有一个 CodeAttribute,有什么方法可以获取 CodeAttribute 代表的内容的 string,即 [ MyAttribute(value="myvalue")].

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

谢谢!

最佳答案

CodeElement 接口(interface)具有属性 StartPointEndPoint,它们表示缓冲区中元素的开始和结束。这些包含行号/列,可以将其传递给 IVsTextLines.GetLineText 等方法,并返回您要查找的值。

要获取给定 CodeElementIVsTextLines,您可以执行以下操作

CodeElement ce = ...;
TextDocument td = ce.StartPoint.Parent;
IVsTextLines lines = td as IVsTextLines;

关于c# - vs201 0 auto 化: Get the text value of a EnvDTE. CodeElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4053308/

相关文章:

c# - 将按钮事件等转换为 ASP.NET MVC

c# - 为什么 GetByID 是命令而不是查询?

.net - 为什么通过菜单项的单击事件打开的模态对话框会处理所有窗口消息?

c# - Elasticsearch Nest-搜索动态数据

git - 使 Visual Studio 2019 在源代码中看到 git 存储库,但在构建目录(具有 sln 文件)中不存在

c# - 向 IElisonBuffer 添加语法突出显示

c# - 绑定(bind)到 ObservableCollection 的 TextBox 不更新

c# - 检查 javascript 函数中的 c# 函数是否为 true

c# - 为什么这种简单的风格不适用?

.net - My.Computer.FileSystem 和 System.IO.File 之间到底有什么区别