zoukankan      html  css  js  c++  java
  • .net core Winform 添加DI和读取配置、添加log

    首先新建配置类

     public class CaptureOption
        {
    
            /// <summary>
            /// 是否自启
            /// </summary>
            public bool AutoStart { get; set; }
    
            /// <summary>
            /// 是否设置为壁纸
            /// </summary>
            public bool SetWallpaper { get; set; } = true;
      }

    然后添加appsettings.json, 复制到输出目录选择 如果较新则复制

    "CaptureOptions": {
            "AutoStart": false,
            "SetWallpaper": true
    }

    nuget 安装

    Microsoft.Extensions.Configuration.Json

    Microsoft.Extensions.DependencyInjection

    Microsoft.Extensions.Options.ConfigurationExtensions

    Microsoft.Extensions.Logging

    Microsoft.Extensions.Logging.Debug

    如果需要httpclientFactory则还需要安装 Microsoft.Extensions.Http

    最后是main函数里配置

            static void Main()
            {
                Application.SetHighDpiMode(HighDpiMode.SystemAware);
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
    
                //添加配置读取
                var config = new ConfigurationBuilder().AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                    .Build();
    
                //添加DI
                var services = new ServiceCollection();
                services.AddOptions();
                services.AddSingleton(config);
                services.Configure<CaptureOption>(config.GetSection("CaptureOptions"));
                services.AddLogging(builder =>
                {
                    builder.AddDebug(); //添加日志输出
                }); 

    //添加主窗体为单例
    services.AddSingleton(typeof(MainForm));


    var serviceProvider = services.BuildServiceProvider();
    Application.Run(services.BuildServiceProvider().GetRequiredService
    <MainForm>()); }

    最后通过注入IOptionsSnapshot 能监听到appsettings.json的变化

  • 相关阅读:
    从goauth2的一个bug说起
    Vagrant与skynet框架
    离开博客园了
    (转) Android开发性能优化简介
    ListFragment源码 (待分析)
    Activity来了
    Android下的屏幕适配
    恶心的content
    Android下的xml资源详解
    各个页面样子的实现与演示
  • 原文地址:https://www.cnblogs.com/turingguo/p/13665473.html
Copyright © 2011-2022 走看看