2

たとえば、監視する必要があるいくつかの .net アプリを実行していて、App1 で MethodA が呼び出された場合、監視アプリはこれを検出する必要があります。実行中のアプリがたくさんありますが、ここで提案する解決策は、それらのアプリをすべて再コンパイルし、監視したい目的のメソッドに新しい行を含めることです。やむを得ない場合のみ行いたいと思います。それで、誰かがこのようなことをしたことがありますか?基本的に、新しいアプリを作成する必要があります。そのアプリのボタンをクリックすると、次のように表示されます: MethodA が App1 でリアルタイムで呼び出されました...

ありがとう!

4

5 に答える 5

3

これを行うにはいくつかの方法があります。1 つは、log4Net を使用して、メソッドに log4Net の書き込みメソッドの呼び出しを「振りかける」ことです。電子メールやデータベースなど、さまざまなログ アペンダー (宛先) を選択できますが、あまり知られていないヒントは、既定のメッセージをリッスンするスタンドアロン プログラムDebugView (SysInternals -> 現在は Microsoft) をダウンロードすることです。

于 2008-09-22T11:24:52.903 に答える
1

PostSharp配信方法、コンパイル済み .net コードの編集方法編集は、コンパイルされた (属性) または構成コードによって C# コードで記述されます。メソッド/イベントの呼び出しなどをログに記録 (または入力など) できるメカニズムがあります。

これは必要なツールだと思います。

于 2008-09-22T12:13:47.420 に答える
0

System.Diagnostics.PerformanceCounter は、開始するのに適した場所です。パフォーマンス コントロール パネル アプレットで表示できる新しいカウンターを作成できます。最初は少し混乱しますが、平均カウンターがパーセンテージを計算するために 2 つのコンポーネントを必要とすることに気付くと、はるかに簡単になります。

于 2008-09-22T11:22:18.713 に答える
0

.NET に一致するメカニズムがあるかどうかはわかりませんが、Java ではエージェント JAR ファイル、つまり各クラスがロードされたときに通知/起動されるクラスを指定できます。次に、インストルメンテーション/バイトコード操作を介して、そのようなメソッド呼び出しをインターセプトできます。おそらく、.NET で何らかの方法でクラス ローダーを置き換えることができます。わからない。

于 2008-09-22T11:22:55.967 に答える
0

リフレクションはあなたが .NET で探しているものですが、あなたがやりたいことの背後にある実装の詳細についてはわかりません。

于 2008-09-22T11:24:11.860 に答える