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();

/* Test Comment */ Line: 50 などの行番号で各コメントを取得するにはどうすればよいですか

4

1 に答える 1

0

アセンブリには「ドキュメント」はありません。ドキュメントはXMLファイルの形式で生成され、アセンブリと一緒に配布する必要があります。呼び出しスタックから、クラスとメソッドの名前を取得できます。XMLファイルがどこにあるかがわかっている場合は、たとえばhttp://jimblackler.net/blog/?p=49を参照すると、ほとんどの場合、メソッドごとにドキュメントを読み取ることができます。

ただし、これは.Netがそのようなことを行う方法ではありません。コンパイル後も存続し、実行時に存在する追加のコンパイル時アノテーションを使用するために、.Netでは、メソッド、クラス、フィールド、プロパティ、列挙型、(....)に適用できるCustomAttributesを導入できます。 。そのリンクを参照し、「作成者」属性の例を見て、マジックコメントを属性に変更することを検討してください。これは、C#だけでなく、.Net全体でそれを行う通常の方法です。

コールスタックからMethodInfoを読み取ったら、それを呼び出しGetCustomAttributesて、そこに書き込んだデータを読み取ることができます。http://msdn.microsoft.com/en-us/library/system.reflection.methodinfo.aspxを参照してください。

于 2012-08-13T19:59:12.293 に答える