我目前正在编写一个带有&34; Microsoft.Extensions.Logging"界面的小包装器。
这样做的主要原因是我无法使用FakeItEasy等扩展方法,例如LogWarning'。
这是一个小样本:
public interface ILoggerWrapper<out T>
{
void LogWarning(string message, params object[] args);
void LogWarning(Exception exception, string message, params object[] args);
}
public class MicrosoftLoggerWrapper<T> : ILoggerWrapper<T>
{
private readonly ILogger<T> _logger;
public MicrosoftLoggerWrapper(ILogger<T> logger)
{
_logger = logger;
}
public void LogWarning(string message, params object[] args)
{
_logger.LogWarning(message, args);
}
}
现在我想知道这个记录器的生命周期以及&#34; Microsoft.Extensions.Logging&#34;具有。是Singleton还是Scoped?
我应该如何在ServiceCollection中注册我的包装器?现在我这样做:
services.AddSingleton(typeof(ILoggerWrapper<>), typeof(MicrosoftLoggerWrapper<>));