To pytanie nie jest związane z programem Ninject. Jest to raczej ogólne pytanie o kodowanie, ale zamieszczam je tutaj, na wypadek, gdyby mógł być lepszy sposób obsługi problemu w programie Ninject niż to, co próbuję zrobić.Uzyskiwanie dostępu do jądra programu Nin 2012 na całym świecie
Chciałbym wiedzieć, czy możliwy jest dostęp do jądra Ninped Standard na całym świecie, od jego instancji w Global.asax.
Oto kod:
public class MvcApplication : NinjectHttpApplication
{
protected override void OnApplicationStarted()
{
base.OnApplicationStarted();
// MVC global registration, routing and filtering code goes here...
}
protected override IKernel CreateKernel()
{
return Container;
}
private static IKernel Container
{
get
{
IKernel kernel = new StandardKernel();
kernel.Load(new ServiceModule(), new RepositoryModule());
return kernel;
}
}
}
Jeśli mam jakieś zajęcia, na przykład zajęcia elewacyjne, które nie Interfejs z kontrolerów, których chciałbym zacząć łańcuch zależności, moje rozumienie jest Powinienem zastosowanie:
_className = kernel.Get<IClassName>();
jednak jedynym sposobem, wiem, aby to zrobić, aby utworzyć nową instancję Ninject jądra standardowego, ale jeśli dobrze rozumiem, to nie jest dobry pomysł, aby utworzyć nową instancję jądro Ninject, ponieważ w zasadzie to tworzy drugi ke rnel.
Czy możliwe jest uzyskanie dostępu do istniejącego jądra, które zostało utworzone w Global.asax na początku aplikacji, z dowolnego miejsca w mojej aplikacji, lub czy istnieje lepszy sposób na zrobienie tego?
Pozdrawiam,
Fred Chateau
Czy pan wie, jak utworzenie dla fabryki będzie mieć wpływ na realizację MVC Extensions? –
Niestety, ta część nie wiedziałabym bez jej próby. Użyłem powyższej metody owijania dla aplikacji, nad którą pracuję, ze względu na wyjątkowe obawy i wybór architektury. – Kaiser12