2012-10-04 27 views
5

gelen örneği almak nasıl Aşağıda, Aşağıda Ninject

public class MvcApplication : NinjectHttpApplication 
{ 
     public MvcApplication() 
     { 
      Error += NinjectWebsiteApplication_Error; 
     } 
}  

protected override IKernel CreateKernel() 
{ 
     var kernel = new StandardKernel(); 
     kernel.Load<ApplicationConfig>(); 
     return kernel; 
} 

void NinjectWebsiteApplication_Error(object sender, System.EventArgs e) 
{ 
     ILogger _iLogger = **//How to get instance of Applogger here from Ninject kernel..** 
} 

olan ApplicationConfig sınıf ...

public class ApplicationConfig : NHibernateNinjectModule 
{ 

    public ApplicationConfig() 
    { 
    //other settings such as ddl script generation is present here 
    } 
    public override void Load() 
    {     
     base.Load(); 
     Bind<ILogger>().To<AppLogger>().InSingletonScope(); 
    } 
} 

cevap

3
..
void NinjectWebsiteApplication_Error(object sender, System.EventArgs e) 
{ 
    var kernel = CreateKernel(); 
    ILogger _iLogger = kernel.Get<ILogger>(); 
} 

Tamam NinjectHttpApplication yapılandırma Yani, yeniden yazabilirsiniz:

void NinjectWebsiteApplication_Error(object sender, System.EventArgs e) 
{ 
    ILogger _iLogger = Kernel.Get<ILogger>(); 
} 
+0

Cevabınız için teşekkür ederiz. Örneğe erişmek için çekirdeği tekrar oluşturmamız gerekiyor mu? Çünkü ApplicationConfig() uygulamasında, uygulama için ddl betikleri oluşturma gibi birçok başka şey var. Böylece, hata olayı ortaya çıktığında, CreateKernel() çağrılır ve komut dosyaları yeniden oluşturulur. Bu örneğe, eylem filtresinde de ihtiyacım olduğunu anladım ve özellik üzerinde "enjekte etme" özniteliği ile çalışmayı denedim, ancak bunun için nesne başvuru hatası verdi. Bu durumda arabirimin çalışması niteliğini veya salt okunur özelliğini enjekte eder. – Sunny

+0

Cevabımı düzenledim – archil

+0

_kernel değişkenine nasıl erişebiliriz? Bunun gibi bir şeye ihtiyacım var mı? ... http://stackoverflow.com/questions/5031678/getting-started-with-ninject-in-asp-net-mvc-3 – Sunny