Официально выпущенный Ninject 2 уже не содержит ссылки на специфичные для WebForms функции для IoC для WebForms, MasterPages и т. Д. Теперь он разделен на плагины/расширения; который в этом случае является расширением http://github.com/idavis/ninject.web. Моя проблема, однако, в том, что существует зависимость от log4net (или NLog), и я не могу найти никакой документации о том, как ее настроить для интеграции с моей текущей конфигурацией log4net или вообще удалить ее (то есть установить регистрацию в null, чтобы я не делал По-видимому, есть две конфигурации log4net).Ninject 2, logging и WebForms
http://markmail.org/message/7iv7nltanz6ve4ga#query:Error%20activating%20ILoggerFactory%20ninject.web+page:1+mid:6o4q6ee2js2k4gfp+state:results ссылки на другие темы с той же проблемой, но опять же, нет реальной документации о том, что с ней делать. Я просмотрел источник всего этого и, должно быть, пропустил что-то очевидное.
Может ли кто-нибудь указать мне в правильном направлении, чтобы наилучшим образом справиться с этим, поэтому я все еще могу легко интегрировать Ninject с WebForms, но не иметь посторонних сервисов ведения журнала? Или не беспокоиться о чем-то вроде следующего на Global.asax:
protected override IKernel CreateKernel()
{
IKernel kernel =
new StandardKernel(new SomeMyModule(), new Log4netModule());
return kernel;
}
Я сейчас kickstarting мою конфигурацию log4net в global.asax через
private readonly static ILog Log = LogManager.GetLogger(typeof(Global));:
Похоже, что ninject нуждается в NullLogger? Вы пробовали * не * добавлять какой-либо модуль регистрации? –
Просто небольшая точка, вы упоминаете «kickstarting» log4net - вы знаете, что эта строка просто говорит «дайте мне один для меня», а не «Мы будем использовать вход в систему здесь» (вы сомневаетесь, чтобы убедиться) http://stackoverflow.com/questions/1261158/log4net-initialisation –
Mauricio - да, приводит к исключению «no ILogger». Это имеет смысл, потому что NullLogger для Ninject отсутствует. Рубен - да, я знаю. log4net требует, чтобы LogManager.GetLogger был а) вызван в той же сборке, где находится конфигурация log4net (которая как можно скорее исключает другую сборку, к которой принадлежит мой модуль ошибок) и b). Призыв к нему, где я делаю так, выполняет оба. – Ted