我想构建一个显示最新日志消息的 LogView。所以我建立了一个非常简单的设置,但我在依赖注入中失败了。
这是我的实现尝试。我跳过了非关键部分。
public class SignalRLogger : ILogger
{
private readonly IHubContext<LogHub> _hub;
public SignalRLogger(IHubContext<LogHub> hub)
{
_hub = hub;
}
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
{
var msg = $"[{logLevel}] {formatter(state, exception)}";
_hub.Clients.All.SendAsync("ReceiveMessage", msg);
}
}
public class SignalrRLoggerProvider : ILoggerProvider
{
private SignalRLogger _logger;
public void Dispose()
{
_logger = null;
}
public ILogger CreateLogger(string categoryName)
{
if (_logger == null)
{
_logger = new SignalRLogger(????);
}
return _logger;
}
}
我的问题基本上是我无法注入IHubContext
并且我不知道如何解决这个问题