我正在用NLog (v2.0)尝试Ninject的日志扩展(v3.0),据我所读,我不应该配置任何东西,事情就像自动魔法一样,我所需要做的就是在需要的地方声明一个ILogger依赖项。
我保留了我已经拥有的nlog.config文件,并删除了创建记录器的所有代码,而是将ILogger放在类的构造函数中。
我在构图根目录上得到一个ActivationException,...Ninject无法解析ILogger。
我遗漏了什么?
从本质上讲,我要说的是:
public static void Main(string[] args)
{
// nothing special here, binds IMyApp to MyApp.
using (var kernel = new StandardKernel(new NinjectConfig()))
{
var app = kernel.Get<IMyApp>(); // MyApp has a ILogger dependency **blows up here**
app.Run(args);
}
}这是一个控制台应用,不管它有什么价值.日志扩展应该像这样工作吗?
文件上说:
在请求类型实例之前,确保内核加载了一个新的Log4NetModule或NLogModule
但如果我这么做
using (var kernel = new StandardKernel(new NLogModule(), new NinjectConfig()))
{
......ReSharper不知道NLogModule是什么。
发布于 2013-09-16 17:18:29
仅下载Ninject.Extensions.Logging的nuget包是不够的。
您还需要下载Ninject.Extensions.Logging.nlog2的nuget包,它包含绑定ILogger接口所需的NLogModule类。
还有一个可用于log4net日志记录的可用nuget包。
这是:
var kernel = new StandardKernel(new NinjectConfig())使一切正常工作所需的一切--不需要显式加载new NLogModule()。
https://stackoverflow.com/questions/18832814
复制相似问题