我创建了一个内部使用ILogger
的库,在注册库时,我使用了类似于下面的代码:_ = service.AddMyLibrary(logger);
我还尝试了_= service.AddMyLibrary(myLoggerFactory),但如果注入了ILoggerFactory,情况也是类似的。
但是,如果库的用户想在一个文件中记录他的应用程序的错误,而在另一个文件中记录我的库的错误(他也使用ILogger
),该怎么办?
什么是最佳实践?我应该使用IMyLibraryLogger
接口并公开它吗?
问题是,如果解决了依赖关系,那么只有一个ILogger的实现会被解决,所有的日志都会在“MyApp.txt”或“MyLibrary.txt”中结束,实际上它们应该是分开的。
1条答案
按热度按时间u3r8eeie1#
您可以使用类似
TryAddScoped
的东西,这样,如果已经有另一个服务为该类型注册,则不会添加日志记录器。你也可以添加第二行,这样用户就可以在确定需要的时候调用你的类型。