0
MVC 4.0 & .net 4.0で作業しており、Ninjectを使用したいと考えています。NinJect Getサービスがクラスのインスタンスを返さない
私はオブジェクトが作成される静的クラスを持っています。静的呼び出しクラスを非静的にすることはできません!
私は呼んで静的クラスでこの結合
Bind<ClinicWebsite.ViewModels.ISelectionEngine>)
.To<ClinicWebsite.ViewModels.Genric_SelectionEngine>();
に基づいてインスタンスを取得しようとしています:
ClinicWebsite.ViewModels.Generic_SelectionEngine myService =
ClinicWebsite.App_Start.NinjectWebCommon.Kernel
.GetService(typeof(ClinicWebsite.ViewModels.ISelectionEngine))
as ClinicWebsite.ViewModels.Generic_SelectionEngine;
を私は "MYSERVICE" を調べるときに私が取得:
The name 'myservice' does not exist in the current context
私は何が間違っているのでしょうか、あるいはNinjectでインスタンスを明示的に作成する別の方法があります(再び、rを得ることはできません静的呼び出し元のクラスのID)
NinjectWebCommon
public static class NinjectWebCommon
{
private static readonly Bootstrapper bootstrapper = new Bootstrapper();
private static readonly StandardKernel kernel = new StandardKernel();
public static void Start()
{
DynamicModuleUtility.RegisterModule(typeof(OnePerRequestHttpModule));
DynamicModuleUtility.RegisterModule(typeof(NinjectHttpModule));
bootstrapper.Initialize(CreateKernel);
}
public static void Stop()
{
bootstrapper.ShutDown();
}
private static IKernel CreateKernel()
{
try
{
kernel.Bind<Func<IKernel>>().ToMethod(ctx =>() => new Bootstrapper().Kernel);
kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();
//DependencyResolver.SetResolver(new NinjectDependencyResolver(kernel));
RegisterServices(kernel);
return kernel;
}
catch
{
kernel.Dispose();
throw;
}
}
private static void RegisterServices(IKernel kernel)
{
Bind<ClinicWebsite.ViewModels.ISelectionEngine>().To<ClinicWebsite.ViewModels.Generic_SelectionEngine>();
}
public static IKernel Kernel
{
get
{
return kernel;
}
}
}
どのように変数を調べますか?落ち込んで?あなたはそれが評価中のスコープに入っていると確信していますか? – VMAtm