zoukankan      html  css  js  c++  java
  • .NET 5 WPF 配置文件变动 程序自动刷新 (reloadOnChange)

    using Microsoft.AspNetCore.Builder;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.DependencyInjection;
    using Microsoft.Extensions.Options;
    using Microsoft.Extensions.Primitives;
    using System;
    using System.Configuration;
    using System.Threading;
    
    namespace WpfLiBroker
    {
        public class AppConfig
        {
    
            public static  Microsoft.Extensions.Configuration.IConfiguration config { get; private set; }
            private static DateTime last_changed_time = DateTime.MinValue;
            static AppConfig()
            {
                  config = new ConfigurationBuilder()
                 .SetBasePath(System.Environment.CurrentDirectory)
                 .AddJsonFile("config.json", false, true)
                 .Build();
    
                LoadData(); //测试此处可以不加  这里加上以防万一
    
                ChangeToken.OnChange(() => {
                    var span = DateTime.Now - last_changed_time;
                    last_changed_time = DateTime.Now;
                    if (span < TimeSpan.FromSeconds(1)){
    
                        System.Diagnostics.Debug.WriteLine($"{DateTime.Now.ToLongTimeString()} config change do nothing!");
                        return config.GetReloadToken();
                    }
                    else
                    {
                        System.Diagnostics.Debug.WriteLine($"{DateTime.Now.ToLongTimeString()} config change do something!");
                        //**********************************
                         LoadData();
                        //#######################################
                        var data = config.GetReloadToken();
                        return data;
                    }
                }
                , ()=> { });// () => autoReset.Set()
            }
    
            private static void LoadData()
            {
                Account = config.GetSection("account").Get<Account>();
            }
    
    
            public static Account Account { get; private set; }
         
        }
    
        public class Account
        {
            public string login_code { get; set; }
    
            public string login_pwd  { get; set; }
        }
    }
    

     配置文件:config.json

    {
      "account": {
        "login_code": "code",
        "login_pwd": "pwd"
      }
    }
    

    主要实现了配置文件修改后 程序绑定的变量自动刷新

  • 相关阅读:
    Android Studio轻松上手指南(1)
    在MyEclipse下创建Java Web项目 入门(图文并茂)经典教程
    opencv提取截获图像(总结摘来)
    10.正则表达式匹配
    遍历 Map 的方式
    09.回文数
    08.字符串转换位整数
    07.整数反转
    06. Z字型变换
    05. 求最长回文子串
  • 原文地址:https://www.cnblogs.com/DotNet1010/p/14270450.html
Copyright © 2011-2022 走看看