J'utilise Ninject 2 avec une application Web ASP.NET MVC. Toutes les dépendances sont gérées correctement dans la pile (Contrôleurs-> Services-> Référentiels). Cependant j'ai quelques classes dans le projet de services qui ne sont pas dans cette «chaîne» que je veux également injecter quand l'application commence. Comment faire pour que Ninject les reconnaisse? J'ai des propriétés publiques avec [Inject]
attributs mais quand l'application s'exécute, ils sont null. Qu'est-ce que je rate?Question d'injection lors de l'utilisation de Ninject 2 dans une application ASP.NET MVC
Voici ma classe MvcApplication:
public class MvcApplication : NinjectHttpApplication
{
protected override void OnApplicationStarted() {
RegisterRoutes(RouteTable.Routes);
RegisterAllControllersIn(Assembly.GetExecutingAssembly());
}
protected override IKernel CreateKernel() {
var modules = new INinjectModule[] {
new Services.ServiceModule(),
new Data.DataModule()
};
var kernel = new StandardKernel(modules);
return kernel;
}
// route registration removed
}
Je double vérifié les deux modules pour vous assurer que les liaisons existent correctes.
Exemple d'un module:
public class ServiceModule : NinjectModule
{
public override void Load() {
Bind<IAccountService>().To<AccountService>();
....
}
}
Ouais je fais ça. Je vais mettre à jour la question –
Ajouté le code et a essayé de clarifier mieux –
Tout semble bien là. Pouvez-vous poster une partie du code dans l'un de vos modules? –