gpt4 book ai didi

c# - ILogger 不需要配置?

转载 作者:太空宇宙 更新时间:2023-11-03 16:07:23 26 4
gpt4 key购买 nike

我正在使用 NLog (v2.0) 试用 Ninject 的日志记录扩展 (v3.0),根据我的阅读,我不应该配置任何东西,就像auto-神奇的,我需要做的就是在需要的地方声明一个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);
}
}

这是一个控制台应用程序,物有所值...日志扩展应该像这样工作吗?


文档说:

make sure you have the kernel load a new Log4NetModule or NLogModule before requesting the type instance

但是如果我这样做:

    using (var kernel = new StandardKernel(new NLogModule(), new NinjectConfig()))
{
...

...ReSharper 不知道 NLogModule 是什么。

最佳答案

正在为 Ninject.Extensions.Logging 下载 nuget 包还不够。

您还需要下载 Ninject.Extensions.Logging.nlog2 的 nuget 包,其中包含 NLogModule绑定(bind) ILogger 所需的类界面。

还有一个可用的 nuget 包用于 log4net 日志记录。

这个:

var kernel = new StandardKernel(new NinjectConfig())

是否需要让一切正常运行 - 无需显式加载 new NLogModule() .

关于c# - ILogger 不需要配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18832814/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com