0

PostSharpを使用して作成した属性を使用するメソッドがいくつかあります。属性には3つのコンストラクターオーバーロードがあり、各オーバーロードはOnEntry()が呼び出される前にロジックを実行します。メソッドが私の属性で初めてヒットされたとき、それは正常に機能します。その後、コンストラクターは私の属性でヒットせず、OnEntry()のみが起動します。

属性を持つメソッドが呼び出されるたびにコンストラクターが呼び出される必要があります。誰かがこれの解決策を知っていますか?

前もって感謝します。

4

2 に答える 2

1

コンストラクターがいつ実行されるかを示す別のトピックを見ることができます。カスタム属性のコンストラクターはいつ実行されますか?

コンパイル直後、実行前に属性にポストシャープアクセスします(これはポストコンパイルと呼ばれます)。デバッガーは適切に機能しているため、コンストラクターにブレークポイントを設定し、呼び出しスタックを確認して、このコンストラクターが呼び出された場所を確認できます。

于 2012-11-08T16:07:16.420 に答える
0

属性コンストラクターは実行時に実行されません。PostSharp属性もこのルールの例外ではありません。

アプローチを再設計する必要があると思います。コンストラクターが一度ヒットしたとあなたが主張していることにも驚いています。確認したところ、実行時に属性コンストラクターがまったくヒットしていません。

于 2012-11-08T16:02:55.063 に答える