Я пытаюсь использовать Ninject с моей оболочкой регистрации приложений.Ninject pass конструктор аргумент typeof класс, который реализует интерфейс
Вот обертка:
public class NLogLogger : ILogger
{
private readonly Logger _logger;
public NLogLogger(Type t)
{
_logger = LogManager.GetLogger(t.Name);
}
}
Как вы можете видеть, я передаю тип в constrctor регистраторы, поэтому я хотел бы использовать его как следующее:
public class EntityObject
{
public ILogger Logger { get; set; }
public EntityObject()
{
Logger = new NLogLogger(typeof(EntityObject));
}
}
Теперь я не могу показаться, чтобы узнать, как сделать что-то подобное с использованием Ninject. Вот мой обязательный модуль:
public class LoggerModule : NinjectModule
{
public override void Load()
{
Bind<ILogger>().To<NLogLogger>();
}
}
Теперь, очевидно, я получаю исключение брошенное, потому что он не может вводить типа в конструктор. Любые идеи, как я могу это сделать?
активирующего Ошибка Типа
Нет соответствующих привязок не доступны, и тип не является самим-Привязываемым.
путьАктивация:
4) Инъекции типа зависимостей в параметр т конструктора типа NLogLogger
3) Инъекции зависимостей ILogger в параметр лесопогрузчика конструктора типа NzbGetSettingsService
2) инъекций зависимости ISettingsService {NzbGetSettingsDto} в параметр nzbGetService конструктора типа DashboardController
1) Запрос DashboardController
Awesome, спасибо. Я вытаскиваю свои волосы об этом! –