Je travaille avec MVC 4.0 & .net 4.0 et souhaite utiliser Ninject.NinJect Get Service ne retourne pas une instance de la classe
J'ai une classe statique, dans laquelle les objets sont créés. Je ne peux pas rendre la classe appel statique statique!
Je suis en train d'obtenir une instance basée sur cette liaison
Bind<ClinicWebsite.ViewModels.ISelectionEngine>)
.To<ClinicWebsite.ViewModels.Genric_SelectionEngine>();
dans la classe statique que j'appelle:
ClinicWebsite.ViewModels.Generic_SelectionEngine myService =
ClinicWebsite.App_Start.NinjectWebCommon.Kernel
.GetService(typeof(ClinicWebsite.ViewModels.ISelectionEngine))
as ClinicWebsite.ViewModels.Generic_SelectionEngine;
mais quand j'examinerai "myservice" Je reçois:
The name 'myservice' does not exist in the current context
Que puis-je faire de mal, ou existe-t-il un autre moyen de créer explicitement une instance avec Ninject (encore une fois, ne peut pas obtenir r id de classe statique d'appel)
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;
}
}
}
Comment examinez-vous la variable? En debig? Êtes-vous sûr que c'est dans le champ d'application lors de l'évaluation? – VMAtm