0

ASP.NET MVC と組み合わせたエンタープライズ ライブラリのポリシー インジェクション アプリケーション ブロックで問題が発生しています。

私の ControllerFactory では、コントローラーを作成してからコントローラーを呼び出しPolicyInjection.Wrapています。これにより、コール ハンドラ チェーンを管理するコントローラに透過プロキシが返されます。

最後に、Transparent Proxy を にキャストしてIController返します。

これは、コントローラー用に定義した呼び出しハンドラーが実行されていないことを除けば、うまく機能しているようです。(たとえば、ログ ハンドラーを構成していますが、PIAB によって何もログに記録されていません。)

私の最終キャストは何とかこれを台無しにしていますか? はどのようControllerBase.Execute()にコントローラーを呼び出しますか? 私のプロキシを利用する必要があるようです。ASP.NET コントローラーで PIAB を使用している人はいますか?

4

2 に答える 2

1

私は PIAB を使用して ASP.NET MVC コントローラーをラップしています。

PolicyInjection.Wrap<IController>(instance)

IController メソッドをラップします。また、ポリシー インジェクションを使用して、同様に使用される IActionInvoker をラップしています。これにより、アクション名をログに記録できます。

MarshalByRefObject ラッピングを使用してコントローラーをラッピングすることに成功したことはありませんが、インターフェイス ラッピングは魅力的に機能します。

追加情報が必要な場合は、IController、IActionFilter、IAuthorizationFilter、IExceptionFilter、および IResultFilter のすべてのメソッドを持つインターフェイスを作成し、コントローラーにそのインターフェイスを実装させることができます。次に、コントローラーをそのインターフェイスとしてラップし、ポリシー インジェクションを介してより多くの呼び出しを取得できます。

それが役立つことを願っています。より具体的な問題がある場合は、投稿してください。

于 2009-11-30T14:18:51.990 に答える
-2

少なくとも 1 人が使用しているようです :) -エンタープライズ ライブラリのポリシー インジェクション アプリケーション ブロックを使用した ASP.NET MVC 検証(これは最初の結果です)

于 2009-07-05T21:01:10.533 に答える