ASP.Net 5 登录类库

2024-01-11

我对依赖注入有点陌生。我正在尝试开始使用 ASP.NET 5,并且正在努力弄清楚如何使用 ASP.NET 5 类库中的服务。尤其是像日志记录和 EF 数据访问这样简单的事情。

例如,我已按照此处的指南进行操作:http://docs.asp.net/en/latest/fundamentals/logging.html http://docs.asp.net/en/latest/fundamentals/logging.html

这使我能够登录主应用程序。然后如何在我的类库中输出日志事件?

我知道从类库中引用主应用程序是一种不好的做法,并且想弄清楚如何正确地执行它。


通过传递一个为你的类创建一个记录器ILogger<YourClass>在构造函数中与示例中完全相同:

public class MyClass : IMyClass
{
     private readonly ILogger<MyClass> _logger;

     public (ILogger<MyClass> logger)
     {
        _logger = logger;
      }

    public void MyMethod()
    {
        _logger.LogInformation("a log");
    }
}

或者通过一个ILoggerFactory:

public class MyClass: IMyClass
{
     private readonly ILogger _logger;

     public (ILoggerFactory loggerFactory)
     {
        _logger = loggerFactory.CreatLogger("MyClass");
      }

    public void MyMethod()
    {
        _logger.LogInformation("a log");
    }
}

并通过以下方式解决你的课程依赖注入 http://docs.asp.net/en/latest/fundamentals/dependency-injection.html:

services.AddTransient<IMyClass, MyClass>();

然后你可以在你的控制器中使用它:

[Route("api/[controller]")]
public class TodoController : Controller
{
    private readonly IMyClass _myClass;
    private readonly ILogger<TodoController> _logger;

    public TodoController(IMyClass myClass, 
        ILogger<TodoController> logger)
    {
        _myClass = myClass;
        _logger = logger;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.Net 5 登录类库 的相关文章

随机推荐