1

誰かがMVC3とNinjectで動作するSNAPAOPフレームワークを手に入れましたか。

NuGetを使用してSnapをMVC3プロジェクトに追加するときに提供されるサンプルは、以前に追加されたNInjectパッケージでは特にうまく機能しません。通常のNInjectアプローチに基づいて動作させようとしましたが、実際にインターセプトすることができません。

誰かがこれをコードで行う方法を教えてもらえますか?

4

1 に答える 1

4

NuGetを介して最新バージョンのNinjectを使用して、MVC3アプリケーションの新しいAppStartフォルダーにクラス呼び出しNinjectMVC3を追加することでそれを理解しました。

私が使用したコードは次のとおりです。自動的に作成されたNinjectMVC3.csCreateKernel()メソッドで:-

         プライベート静的IKernelCreateKernel()
        {{
            //AOPに接続します
            NinjectAopConfiguration.NinjectAopConfigure();

            // var kernel = new StandardKernel(); //削除

            RegisterServices(NinjectAopConfiguration._container.Kernel);

            NinjectAopConfiguration._container.Kernelを返します。
        }

また、RegisterServices()メソッドのさまざまなインジェクションターゲットにNinjectを接続しました。

次に、SNAP.NinjectをMVC 3アプリケーションに追加するときにNuGetによって生成されたサンプルコードを取得し、名前をNinjectAOP.csに変更して、次のようにしました。

パブリック静的クラスNinjectAopConfiguration
    {{
        public readonly static NinjectAspectContainer _container;

static NinjectAopConfiguration() { _container = new NinjectAspectContainer(); } public static void NinjectAopConfigure() { SnapConfiguration.For(_container).Configure(c => { c.IncludeNamespace("MyNamespace.Model.*"); c.Bind<ExceptionLoggingInterceptor>().To<ExceptionLoggingAttribute>(); }); } }

また、Ninjectのどこかにアセンブリバージョンの競合があるため、次のようにNinjectのアセンブリバインディングリダイレクトを実行する必要がありました。

これが誰かに役立つことを願っています。

ぜひご覧になって、改善できるかどうかを確認してください。

于 2011-03-02T13:43:24.677 に答える