3

MVC4 と Ninject を使用して単純な「Hello World」を作成しようとしています。

私はフォローしています:このチュートリアル

私は MVC4 と Visual Studio 2012 Web Express を使用しており、次を使用して Nuget パッケージをインストールしました。

Install-package Ninject
Install-package Ninject.MVC3

次の global.aspx があります。

public class MvcApplication : Ninject.Web.Common.NinjectHttpApplication
{
    protected override Ninject.IKernel CreateKernel()
    {
        IKernel kernal = new StandardKernel();
        kernal.Load(Assembly.GetExecutingAssembly());
        kernal.Bind<IMessageService>().To<MessageService>();
        return kernal;
    }

    protected override void OnApplicationStarted()
    {
        AreaRegistration.RegisterAllAreas();

        WebApiConfig.Register(GlobalConfiguration.Configuration);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        AuthConfig.RegisterAuth();
    }
}

これを実行すると、例外がスローされることがわかります。シーケンスには要素が含まれておらず、VS はデバッグのためにファイル NinjectHttpApplication.cs を開こうとします。VSはそれを見つけることができません。

ここで何が起こっているのか分かりますか?

ありがとう

デイブ

アップデート

この質問で指定された解決策を試しました。これは、登録バインディングを App_Start のファイルに移動することです。このファイルは私のフォルダーの NinjectWebCommon.cs で、そこに NinjectMVC3.cs ファイルはありません。

4

1 に答える 1

4

私は今、同じ問題を抱えていました。カーネルApp_Start\NinjectWebCommon.cs を作成してサービスを登録するコードがあり、自動的に呼び出されます。Global.asax.cs を既定のコードに戻します ( Application_Start()Ninjectery を使用する場合と使用しない場合)。それは私にエラーを乗り越えさせました。

于 2013-01-23T22:14:41.847 に答える