【发布时间】:2020-08-11 17:54:00
【问题描述】:
我有一个这样的项目结构的解决方案。这是一个 .Net Core 应用,前面使用了 Razor 页面。
Frontend
|
|
BusinessLogic
|
|
DataAccess
我的目标是将 NLog 用户用作记录器。而且我的AF失败了。 我在 Fronted 项目中使用了这个 sn-p:
var host = Host.CreateDefaultBuilder(args)
.UseServiceProviderFactory(new AutofacServiceProviderFactory())
.ConfigureWebHostDefaults(webHostBuilder =>
{
webHostBuilder
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.SetMinimumLevel(LogLevel.Information);
})
.UseNLog();
})
.Build();
但是位于业务逻辑中的服务需要注入 Nlog ILogger。而且我不断收到异常
DependencyResolutionException:在类型 >'BusinessLogic.Services.ApplicationService' 上使用 >'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' 找到的任何构造函数都不能使用可用的 >services 和参数调用:无法解析参数'AutoFac。 Extras.NLog.DotNetCore.ILogger 记录器'
如您所见,我尝试使用 AutoFac.Extras.NLog.DotNetCore 但没有帮助。我真的很困惑如何使用 .net 核心应用程序正确设置 Nlog。
【问题讨论】:
标签: c# asp.net-core autofac nlog