1
我正在使用優秀的LibLog代碼在我的應用程序中抽象記錄器實現。簡單注射器註冊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」來顯示你在提問時使用的版本。 – granadaCoder
你好,我不確定我有你的問題。表示ILog接口的名稱空間以及LogProvider類,那麼請查看問題中的第一個鏈接,即LibLog nuget。LibLog是一個nuget,它爲您提供了源代碼,因此命名空間是您的項目,我已經添加了SimpleInjector版本,如果我錯了,你可以讓我更好理解嗎? – Lorenzo
是的,我現在看到它。這是我第一次看到一個nuget包引入源代碼.... ..而不是一個預編譯的組合,有點奇怪,但我現在「看」它。 – granadaCoder