0

Attribute クラスから継承したクラスを作成して、プロジェクト内のすべてのメソッドに属性タグを配置して、メソッド名、このメソッドを持つクラス名、呼び出しの日時、パラメーター、およびメソッドの戻り値 (何かを返す場合) を書き込みたいだけです。 )。

すべてのログ情報を受け取り、署名する SQL Server にテーブルを作成します。

データベースと対話するすべてのメソッドとクエリを実行しました(日付と時刻のメソッドを除く)。唯一の問題は、言及した情報を取得するために属性方法でそれを使用する方法がわからないことです。

4

2 に答える 2

0

属性を使用してログを記録する場合は、コードのコンパイル中に IL を変更し、PostSharp の属性 (アスペクト) (AOP) から派生したカスタム属性を配置するメソッドの前後にログ コードを配置する PostSharp を使用できます。

私が知っているように、カスタム属性Type.GetCustomAttributes()は呼び出されたときにのみインスタンス化されるため、カスタム属性を使用するだけではこれを行うことはできないと思います。そのため、推奨しない属性を介してログを送信するために、リフレクション ビジネスを行う必要がある場合があります。

属性の代わりに、サードパーティのツールを介してAOPを簡単に使用できます。Castle Dynamic Proxyのインターセプターを使用できます。

于 2013-11-12T07:42:30.523 に答える