0

asp.net Webページがあります。イベント内には、Page_Load複数のメソッド呼び出し (など)が存在する可能性があります。MethodAMethodB(arg1, arg2)

私はhttpモジュールを持っています。ページにアクセスするときは、まず httpmodule を通過します。

その hpttpmodule 内で、現在実行中のページで呼び出されているすべてのメソッドを検索または一覧表示したいと考えていますPage_Load

MethodAこのようにして、シグネチャを持つ特定のメソッド ( ) がPage_Loadイベント内に実装されていることを確認したいと考えています。

この目的を達成するために、実装、天気のhttpmodule、ベースページ、抽象クラス、インターフェース、リフレクションなどを高く評価します。

ありがとう

4

1 に答える 1

1

次のようなものを試すことができます:

MethodBase methodBase = typeof(INSERT_CLASS_HERE).GetMethod(INSERT_METHOD_HERE);
var instructions = MethodBodyReader.GetInstructions(methodBase);

foreach (Instruction instruction in instructions)
{
MethodInfo methodInfo = instruction.Operand as MethodInfo;

if(methodInfo != null)
{
    Type type = methodInfo.DeclaringType;
    ParameterInfo[] parameters = methodInfo.GetParameters();

    Console.WriteLine("{0}.{1}({2});",
        type.FullName,
        methodInfo.Name,
        String.Join(", ", parameters.Select(p => p.ParameterType.FullName + " " + p.Name).ToArray())
    );
}

}

INSERT_CLASS_HERE見たいクラスの名前はどこにありますか。
AndINSERT_METHOD_HEREは、すべての呼び出しを検索するクラス内のメソッドの名前です。

于 2012-12-13T05:07:27.927 に答える