Je cherchais depuis longtemps.Injection de dépendances avec Ninject 2.0 pour C# ASP.NET (PAS MVC)
Je ne suis pas nouveau à l'injection de dépendance et j'ai utilisé StructureMap avec plusieurs projets MVC et autres, mais j'ai eu envie de donner un coup de Ninject, pour ne pas rater le plaisir.
J'essaie d'utiliser Ninject avec une application Web existante que je mets à jour.
Je ne pouvais pas trouver sur les blogs et le wiki fournis par Ninject, je suis un peu impatient d'être honnête alors peut-être l'ai manqué, et les premières pages de google semblent être obsolètes ou parler de l'utilisation de MVC avec Ninject. Jusqu'à présent, j'ai ce qui suit et cela fonctionne, mais j'espérais que quelqu'un pourrait signaler une option moins intrusive, concernant l'appel du ServiceModule au noyau et l'injection d'une propriété avec la liaison souhaitée de l'application Web.
Ce que j'ai à ce jour est un ServiceModule:
public class ServiceModule : NinjectModule
{
public override void Load()
{
string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
Bind<IPreRegistrationService>().To<PreRegistrationService>()
.WithConstructorArgument("connectionString",connectionString);
}
}
Puis dans ma page, j'ai défini une variable privée:
private IPreRegistrationService xfemPreRegistrationService = null;
Ensuite, en cas de chargement de la page:
IKernel kernel = new StandardKernel(new ServiceModule());
xfemPreRegistrationService = kernel.Get<IPreRegistrationService>();
Donc, cela fonctionne, mais ce que je voudrais, c'est de passer à une phase où tout ce que je définis est:
[Inject]
public IPreRegistrationService xfemPreRegistrationService { get; set; }
sur une page et le reste est magique.
Vive