【问题标题】:C# - .NET Core Serilog and Appsettings in all classesC# - 所有类中的 .NET Core Serilog 和 Appsettings
【发布时间】:2021-05-07 17:20:39
【问题描述】:

我有一个关于 C# 和 .NET Core 的问题。目的是创建一个基本模板,允许我使用 Serilog 作为日志服务并访问所有必要类中的应用程序设置。

因此,我的 Main() 方法如下所示:

        static void Main(string[] args) {

        var builder = new ConfigurationBuilder();
        BuidConfig(builder);

        Log.Logger = new LoggerConfiguration()
            .ReadFrom.Configuration(builder.Build())
            .CreateLogger();

        try {

            Log.Information("Starting...");

            var host = Host.CreateDefaultBuilder()
                .ConfigureServices((conext, services) => {
                    services.AddTransient<IADSyncSvc, ADSyncSvc>();
                })
                .UseSerilog()
                .Build();
            
            var svc = ActivatorUtilities.CreateInstance<ADSyncSvc>(host.Services);
            svc.Run();
        }
        catch (Exception ex) {
            Log.Fatal(ex, "Failed!");
        }
        finally {
            Log.CloseAndFlush();
        }

    }

构建器配置将在此方法中创建:

        static void BuidConfig(IConfigurationBuilder builder) {
        builder.SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
            .AddEnvironmentVariables();
    }

基本上,这个类是我的应用程序的入口点,并在我的 ADSyncSvc 类中执行 Run() 方法。我的 ADSyncSvc 类如下所示:

    public class ADSyncSvc : IADSyncSvc {

    private readonly ILogger<ADSyncSvc> _log;
    private readonly IConfiguration _config;
    public ADSyncSvc(ILogger<ADSyncSvc> log, IConfiguration config) {
        this._log = log;
        this._config = config;
    }

    public void Run() {
    }
}

这工作得很好,但我的问题是访问我已写入任何其他类的 appsettings.json 文件的 Serilog 和 Appsettings 配置。实现这一目标的最佳方法是什么?我应该如何修改我的配置以允许其他服务类访问此设置?

【问题讨论】:

  • 阅读依赖注入。

标签: c# .net


【解决方案1】:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-06
    • 2020-06-29
    • 2018-11-16
    • 1970-01-01
    • 2019-06-12
    • 1970-01-01
    • 2018-10-31
    • 1970-01-01
    相关资源
    最近更新 更多