2017-01-05 1 views
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; 
    } 
} 
} 
+0

どのように変数を調べますか?落ち込んで?あなたはそれが評価中のスコープに入っていると確信していますか? – VMAtm

答えて

0

は、私は答えを見つけました。 これは静的クラスであるため、 "myservice"をクラスの静的メンバーにしてから割り当てる必要があります。

関連する問題