.NET Core 2.1从类库登录到数据库

时间:2018-10-01 12:37:53

标签: c# asp.net asp.net-mvc asp.net-core

是否可以使用.NET Core 2.1的类库中的配置登录到数据库?

我设法使用NLog为.NET MVC 5构建了一个工作版本。但是,当涉及到.NET Core 2.1时,就依赖于在Startup.cs和Program.cs中将其设置为服务。

我实际上是在另一篇文章中问过的,但这只是为了获得有关指南或教程的建议,以查看是否可行?

这是另一篇我展示了NLog的代码和配置的文章 ASP.NET Core 2.1 Using Nlog configuration as .NET MVC5

1 个答案:

答案 0 :(得分:4)

尤其是在类库中,应该使用日志记录外观,例如Microsoft.Extensions.Logging,而不是具体的日志记录提供程序(例如NLog)。然后,您只需将日志记录界面注入类库类中即可,例如:

public class Foo
{
    private readonly ILogger _logger;

    public Foo(ILogger<Foo> logger)
    {
        _logger = logger ?? throw new ArgumentNullException(nameof(logger));
    }

    ...
}

然后,在类内部,使用设置为_logger ivar的注入日志记录实例。然后,在利用此类的实际项目中,设置您的日志记录提供程序并注册适当的服务。这样,每个应用程序都可以控制自己的日志记录提供程序,而您的类库类仅使用抽象。