.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"
}
}
主要实现了配置文件修改后 程序绑定的变量自动刷新
.NET 5 WPF 配置文件变动 程序自动刷新 (reloadOnChange)的更多相关文章
- WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因
原文:WPF 的命令的自动刷新时机--当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 在 WPF 中,你可以使用 Command="{Binding Walt ...
- gulp之压缩合并MD5清空替换加前缀以及自动编译自动刷新浏览器大全
gulp是基于流的前端构件化工具.目前比较火的前端构建化工具还是挺多的,grunt gulp fis3等等. 这个鬼东西有什么用?请参考https://www.zhihu.com/question/3 ...
- SQL实现类似于自动刷新数据的功能
有时需要在SQL中,定时刷新某张表,比如说是要定时查询某张表的行数,通常做法就是手动的按F5去执行来刷新数据.但是如果这个定时查询历时较长,10分钟,或半小时,手动的话肯定是要崩溃了.貌似SQL没有像 ...
- Browsersync 浏览器自动刷新
Browsersync 是一个很好用的工具,它可以实时监测文件的变动然后自动刷新浏览器,不用每次去点刷新或F5,特别在调试样式时非常有用. browsersync中文网 http://www.bro ...
- vim 配置文件 ,高亮+自动缩进+行号+折叠+优化
vim 配置文件 ,高亮+自动缩进+行号+折叠+优化 将一下代码copy到 用户目录下 新建文件为 .vimrc保存即可生效: 如果想所有用户生效 请修改 /etc/vimrc (建议先cp一份)& ...
- .Net桌面程序自动更新NAppUpdate
自动更新介绍 我们做了程序,不免会有版本升级,这就需要程序有自动版本升级的功能.应用程序自动更新是由客户端应用程序自身负责从一个已知服务器下载并安装更新,用户唯一需要进行干预的是决定是否愿意现在或以后 ...
- 高并发分布式系统中生成全局唯一(订单号)Id js返回上一页并刷新、返回上一页、自动刷新页面 父页面操作嵌套iframe子页面的HTML标签元素 .net判断System.Data.DataRow中是否包含某列 .Net使用system.Security.Cryptography.RNGCryptoServiceProvider类与System.Random类生成随机数
高并发分布式系统中生成全局唯一(订单号)Id 1.GUID数据因毫无规律可言造成索引效率低下,影响了系统的性能,那么通过组合的方式,保留GUID的10个字节,用另6个字节表示GUID生成的时间(D ...
- 前端自动化之sass实时编译及自动刷新浏览器
gulp livereload实现sass实时编译及浏览器自动刷新 首先gulp是基于Node的,所以确保你已经安装 node.js,在Nodejs官方网站下载跟自己操作系统相对应的安装包. 先说一下 ...
- 前端神器!!gulp livereload实现浏览器自动刷新
首先gulp是基于Node的,所以确保你已经安装 node.js,在Nodejs官方网站下载跟自己操作系统相对应的安装包. 先说一下gulp安装流程: 1:全局安装gulp,操作为: npm inst ...
- 通过总线机制实现自动刷新客户端配置(Consul,Spring Cloud Config,Spring Cloud Bus)
通过总线机制实现自动刷新客户端配置 方案示意图 利用Git服务的webhook通知功能,在每次更新配置之后,Git服务器会用POST方式调用配置中心的/actuator/bus-refresh接口,配 ...
随机推荐
- ubuntu22.04 交叉编译openwrt
国内源vi /etc/apt/sources.listdeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted un ...
- TP5 事务处理加锁
首先,数据库类型要是InnoDB,其次,加锁必须跟事务同时使用,还有,查询的时候都必须带锁,比如: db('sms')->lock(true)->where(['id'=>1])-& ...
- PHP开启缓存加速
PHP默认会将Operate Code文件丢弃,缓存加速是将其保存下来,放置共享内存中,以便在下次调用该PHP页面时重用,避免相同代码的重复编译 __________________________ ...
- yii框架中 不能正确正常使用phpredis 路径安装好后还是报 Class yii\redis\Connection does not exist!
1,成功解决方案 在yiisoft / extensions.php 中添加如下数组 指向目录 'yiisoft/yii2-redis' =>array( 'name'=>'yi ...
- php递归算法多级分类
/** * 递归实现无限极分类 * @param $array 分类数据 * @param $pid 父ID * @param $level 分类级别 * @return $list 分好类的数组 直 ...
- rhel8.0配置本地 yum 源
1.首先挂载cdromcat >> /etc/fstab <<EOF/dev/sr0 /media iso9660 ...
- macOS完整安装包下载方法
Python脚本下载 开源地址:macadmin-scripts 下载installinstallmacos.py到Mac,然后用python运行,如图: # ProductID Vers ...
- git使用采坑-The project you were looking for could not be found 解决方式
清除本地git账户,重新输入用户名密码(最优) git config --system --unset credential.helper之后再进行git操作时,弹出用户名密码窗口,输入即可 详情如下 ...
- luogu 4886
点分治好题 统计距离正常点分治统计即可,我们只需考虑何时达到最优 有两种情况: 第一:代价最大的询问两个端点在不同的两个子树中 因为这种情况下,无论根向那个子树移动都会等价地增加到达另一个端点的代价, ...
- 操作系统|01.Windows
Windows基础 1.系统目录 1.1 C盘根目录 Data:Windows系统目录,放置程序的使用数据.设置等文件. MyDrivers:驱动程序文件夹. PerfLogs:日志文件夹. Prog ...