【发布时间】:2015-11-18 21:33:39
【问题描述】:
我正在尝试将 Ninject 与我的应用程序日志记录包装器一起使用。
这是包装器:
public class NLogLogger : ILogger
{
private readonly Logger _logger;
public NLogLogger(Type t)
{
_logger = LogManager.GetLogger(t.Name);
}
}
如您所见,我将类型传递给记录器构造函数,因此我将按如下方式使用它:
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 类型的构造函数的参数 t 中
3) 将依赖 ILogger 注入到 NzbGetSettingsService 类型的构造函数的参数记录器中
2) 将依赖 ISettingsService{NzbGetSettingsDto} 注入到 DashboardController 类型的构造函数的参数 nzbGetService 中
1) DashboardController 的请求
【问题讨论】:
标签: c# ninject inversion-of-control