1

ポストシャープ用のを書き込もうとしていCompileTimeValidate(MethodBase method)ます。問題は、違反が発生すると、エラーリストに説明のみが表示されることです。「ファイル」列と「行」列は空です。

私が使用できる唯一の情報はMethodBase、属性が適用されたメソッドのインスタンスです。

オブジェクトからソースファイルと行番号の詳細を取得する方法はありMethodBaseますか?

    public override bool CompileTimeValidate(MethodBase method)
    {
        MessageSource.MessageSink.Write(new Message(SeverityType.Error, "CU0001",
           "MyError", "MyAspectLibrary"));

        return false;
    }
4

1 に答える 1

3

いいえ、ありません。MethodBase は、.Net アセンブリの基礎となるメタデータの一部を表現したものです。ファイルや行情報を含むソース情報は DLL に保存されないため、Reflection API 経由では利用できません。ファイルと行の情報は実際には PDB に格納されており、ファイルと行の情報を見つけるには、トークンを照合するこれらの API を調べる必要があります。

于 2009-07-30T16:54:49.260 に答える