【发布时间】:2019-03-11 14:25:54
【问题描述】:
我正在开发 ASP .Net MVC5 项目,我正在使用 ILogger 接口 inder Microsoft.Extensions.Logging 和 DI 的 Unity 框架强>.
我想要将 ILogger 注入到我的项目中,以便在我的控制器中使用它。
我在我的项目中安装了 Unity 和 Unity.MVC nuget 包,并尝试像这样注入 ILogger:
public static void RegisterTypes(IUnityContainer container)
{
container.RegisterType(typeof(ILogger<>), typeof(Logger<>), (new HierarchicalLifetimeManager()));
}
我的控制器:
public class HomeController : Controller
{
private readonly ILogger _logger;
public HomeController(ILogger logger)
{
_logger = logger;
}
public ActionResult Index()
{
_logger.LogInformation("TEST log event message");
return View();
}
总是在我运行项目时出现此错误:
【问题讨论】:
-
您只注册了
ILogger<>的通用版本,而您的控制器正在等待非通用版本。您是否尝试简单地将Logger注册为ILogger?
标签: c# .net asp.net-mvc unity-container