5
Below zu bekommen, ist NinjectHttpApplication Konfiguration ..Wie Instanz von 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..**
}
Unten ist die ApplicationConfig Klasse ...
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();
}
}
Danke für die Antwort schreiben. Müssen wir den Kernel erneut erstellen, um auf die Instanz zugreifen zu können? Weil wir in ApplicationConfig() viele andere Dinge tun, wie das Erstellen von ddl-Skripten für die Anwendung. Wenn also ein Fehlerereignis ausgelöst wird, wird CreateKernel() aufgerufen und Skripte werden erneut generiert. Ich erkannte, ich brauche diese Instanz in Aktion Filter und versuchte mit "inject" -Attribut auf der Eigenschaft, aber seine Angabe Objekt Referenzfehler. In diesem Fall funktioniert Inject Attribut oder Readonly Eigenschaft der Schnittstelle. – Sunny
Ich habe meine Antwort bearbeitet – archil
Wie greifen wir auf _kernel Variable. Benötige ich etwas wie das? ... http://stackoverflow.com/questions/5031678/getting-started-with-ninject-in-asp-net-mvc-3 – Sunny