La version officiellement publiée de Ninject 2 n'inclut plus de référence à la fonctionnalité spécifique à WebForms pour IoC pour WebForms, MasterPages, etc. Elle est désormais séparée en plugins/extensions; qui dans ce cas est l'extension http://github.com/idavis/ninject.web. Mon problème est cependant qu'il y a une dépendance sur log4net (ou NLog) et je ne trouve pas de documentation sur la façon de le configurer pour l'intégrer à ma configuration log4net actuelle, ou le supprimer complètement (c.-à-d. Il est concevable que deux configurations log4net soient en cours d'exécution).Ninject 2, journalisation et WebForms
http://markmail.org/message/7iv7nltanz6ve4ga#query:Error%20activating%20ILoggerFactory%20ninject.web+page:1+mid:6o4q6ee2js2k4gfp+state:results référence d'autres avec le même problème, mais encore une fois, pas de véritable documentation sur ce qu'il faut faire avec. J'ai regardé à travers la source pour tout cela, et il me manque quelque chose d'évident.
Quelqu'un peut-il me diriger dans la bonne direction pour la meilleure façon de traiter cela afin que je puisse toujours facilement intégrer Ninject avec WebForms, mais ne pas avoir des services de journalisation étrangers en cours d'exécution? Ou vous inquiétez pas de quelque chose comme ce qui suit sur le Global.asax:
protected override IKernel CreateKernel()
{
IKernel kernel =
new StandardKernel(new SomeMyModule(), new Log4netModule());
return kernel;
}
Je suis actuellement kickstarts ma configuration log4net dans global.asax via
private readonly static ILog Log = LogManager.GetLogger(typeof(Global));:
On dirait que ninject a besoin d'un NullLogger? Avez-vous essayé * pas * d'ajouter un module de journalisation? –
Juste un petit point, vous mentionnez 'kickstarting' log4net - vous savez que cette ligne dit juste "get moi un pour moi" par opposition à "Nous allons utiliser la journalisation ici" (vous avez fait doo - je voulais juste pour être sûr) http://stackoverflow.com/questions/1261158/log4net-initialisation –
Mauricio - oui, il en résulte une exception "no ILogger specified". Ce qui est logique car il n'y a pas de NullLogger pour Ninject. Ruben - oui, je sais. log4net exige que LogManager.GetLogger soit a) appelé dans le même assemblage que celui où se trouve la configuration de log4net (ce qui exclut un autre assemblage auquel appartient mon module d'erreur) et b) dès que possible. L'appeler là où je le fais d'une telle manière remplit les deux. – Ted