3

私は最近、Umbraco 4 での MVC コントローラーのサポートに関する Aaron Powell の投稿をフォローし まし。 umbraco/using-mvc-in-umbraco-4-revisited

すべてが期待どおりに機能します。コントローラーをセットアップでき、それらは umbraco のページに沿ってシームレスに機能します。問題は、Ninject で IoC をセットアップしようとしているのですが、うまく動作しませんでした。

Web Activator を使用して PreApplicationStartMethod にアタッチする App_Start のクラスをセットアップし、以前と同じようにカーネル構成を定義しました。

 private static IKernel CreateKernel()
    {
        var kernel = new StandardKernel();

        //Standard Modules
        kernel.Bind<Func<IKernel>>().ToMethod(ctx => () => new Bootstrapper().Kernel);
        kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();
        kernel.Bind<IUnitOfWork>().To<UnitOfWork>().InRequestScope();
        kernel.Bind<IConfigurationManager>().To<ConfigurationManagerWrapper>().InRequestScope();

        //Security
        kernel.Bind<ISecurity>().To<Security>().InSingletonScope();
        kernel.Bind<IMembershipAuthorization>().To<MembershipAuthorization>();
        kernel.Bind<IFormsAuthorization>().To<FormsAuthorization>();

        //Registering my services, repositories, and connections
        RegisterRepositories(kernel);
        RegisterServices(kernel);
        RegisterConnections(kernel);

        GlobalConfiguration.Configuration.DependencyResolver = new NinjectResolver(kernel);

        return kernel;
    }

ソリューションをデバッグしたところ、このコードが実行されました。しかし、コントローラーを呼び出すたびにインジェクションは行われず、「パラメーターなしのコンストラクターが定義されていません」というエラーが発生します。

このシナリオでIoCを機能させる方法を知っている人はいますか?

4

1 に答える 1

1

私たちはゼロから始めました。ソースの代わりに Umbraco がコンパイルしたバイナリ/ウェブサイトを使用します。その時点から、nuGet を使用して MVC4 と Ninject をインストールしましたが、すべて正常に動作しているようです。

とにかく助けてくれた人に感謝します!

于 2012-08-15T18:53:29.527 に答える