C# 4.0 C#使用提取的注释块获取行号

C# 4.0 C#使用提取的注释块获取行号,c#-4.0,C# 4.0,我想用下面的代码从源代码中提取带有注释行的行号 foreach (Match match in re.Matches(FileText)) { StackFrame CallStack = new StackFrame(0, true); sb.Append(match.ToString() + CallStack.GetFileLineNumber() + System.Environment.NewLine); } return sb.ToString(); 如何捕获带有行

我想用下面的代码从源代码中提取带有注释行的行号

foreach (Match match in re.Matches(FileText))
{
    StackFrame CallStack = new StackFrame(0, true);
    sb.Append(match.ToString() + CallStack.GetFileLineNumber() + System.Environment.NewLine);
}
return sb.ToString();
如何捕获带有行号的每条注释,例如/*测试注释*/line:50

程序集中没有“文档”。文档以XML文件的形式生成,并应与程序集一起分发。从调用堆栈中,可以获得类和方法的名称。如果您知道XML文件位于何处,那么您可以引用它们,例如,根据一个方法读取文档

然而,这不是.Net做这些事情的方式。由于有额外的编译时注释,这些注释将在编译过程中幸存下来并在运行时出现,因此.Net允许您引入可应用于方法、类、字段、属性、枚举等的注释(…)。看到这个链接,看看“作者”属性的例子,并考虑将魔术评论变成一个属性。这是在整个.Net中执行此操作的正常方式,而不仅仅是在C#中


一旦从调用堆栈中读取MethodInfo,就可以在其上调用
GetCustomAttributes
,并读取写入其中的数据,请参见

实际上,我设法从源代码文件中提取注释块,但我还想从注释块中提取行号。呈现出如下输出:;注释2注释3但我希望它显示注释1第50行注释2第70行注释3第77IIRC行,注释块的行号在编译阶段不会保留。您必须为构建序列编写前置或后置处理器,以分析.cs文件并存储数据以供以后使用,就像XML文档gen一样,但这一切都由您自己完成。唯一保留的行号存储在调试信息中,但它们描述可运行代码,而不是属性、注释或其他不可运行的代码。你可以试着和我一起玩,但我认为这不会带来任何结果。