【发布时间】:2021-03-04 02:38:28
【问题描述】:
这里是 .NET Core 的新手。我搜索了另一个文档、线程或指南来回答我的问题,但找不到,如果您认为有,请指出。
我正在尝试使用 DI 创建一个简单的 .NET 5 控制台应用程序,但实际上卡在了使用日志记录构建类上。
-
这是在 .NET Core 中使用 DI 将记录器(或任何其他服务)传递给子类的正确方法吗? 根据下面的代码,在我的父类构造函数中,我为每个子类使用一个额外的 ILogger,例如。
ILogger<SubClass>?public TestClass(ILogger<TestClass> log, ILogger<SubClass> subClassLog, IConfiguration config) -
如何在我的静态进程
StaticProc中初始化记录器?public static async Task<bool> StaticProc()
程序.cs:
使用 Microsoft.Extensions.Configuration; 使用 Microsoft.Extensions.DependencyInjection; 使用 Microsoft.Extensions.Hosting; 使用 Microsoft.Extensions.Logging; 使用系统; 使用 System.IO; 使用 System.Threading.Tasks; 命名空间 ConsoleApp1 { 课堂节目 { 静态异步任务 Main(string[] args) { var builder = new ConfigurationBuilder(); 构建配置(构建器); var host = Host.CreateDefaultBuilder() .ConfigureServices((上下文,服务)=> { services.AddTransientTestClass.cs:
使用 Microsoft.Extensions.Configuration; 使用 Microsoft.Extensions.Logging; 使用 System.Threading.Tasks; 命名空间 ConsoleApp1 { 公共类 TestClass : ITestClass { 私有只读 ILogger子类.cs:
使用 Microsoft.Extensions.Configuration; 使用 Microsoft.Extensions.Logging; 使用系统; 使用 System.Threading.Tasks; 命名空间 ConsoleApp1 { 公共类子类:ISubClass { 私有只读 ILoggerappsettings.json:
{ “循环”:15 }log4net.config:
【问题讨论】:
-
你看过这篇文章吗,它描述了我们如何在控制台应用程序中使用 DI 容器pradeeploganathan.com/dotnet/…
-
我已经看过pradeeploganathan.com上的几篇文章,也用过youtube.com/watch?v=GAOCe-2nXqc。两者都没有给我我需要的东西。 LoggerFactory 是我所追求的。谢谢你们的帮助。
标签: c# .net-core dependency-injection log4net asp.net-core-5.0