【发布时间】:2018-01-11 05:30:35
【问题描述】:
我正在使用出色的 LibLog 代码在我的应用程序中抽象记录器实现。
我也使用Simple Injector 作为我的 DI 容器。
我想在我的类中注入一个对应于以下静态创建的记录器实例
private readonly ILog logger = LogProvider.For<MyClass>()
或者如果你喜欢静态方法
private readonly ILog logger = LogProvider.GetCurrentClassLogger()
这样做是否正确?
container.Register<ILog>(() => LogProvider.GetCurrentClassLogger(), Lifestyle.Singleton);
还是有更好的办法?
编辑:
<package id="SimpleInjector" version="4.0.8" targetFramework="net461" />
<package id="SimpleInjector.Packaging" version="4.0.8" targetFramework="net461" />
【问题讨论】:
-
我的王国“使用”命名空间。 (如果你有机会列出它们,那就太好了。还有“packages.config”来显示你在提问时使用的版本。
-
你好,我不确定我有没有你的问题。如果您指的是 ILog 接口的命名空间以及 LogProvider 类,那么请查看问题中的第一个链接,即 LibLog nuget 的链接。 LibLog 是一个为您提供源代码的 nuget,因此命名空间属于您的项目,我添加了 SimpleInjector 版本。如果我错了,你能不能让我更好地理解?
-
是的,我现在看到了。这是我第一次看到 nuget 包引入源代码......而不是预编译的程序集。有点奇怪,但我现在“看到”了。谢谢。
标签: c# dependency-injection simple-injector liblog