NiuBConfigSource把Service传递进去
public class NiuBConfigSource : NiuBOption, IConfigurationSource{private INiuBService service;public NiuBConfigSource(INiuBService service){this.service = service;}public IConfigurationProvider Build(IConfigurationBuilder builder){return new NiuBConfigProvider(service);}}
事情搞完了,下面来测试一下,由于注册中心没有实现,下面来模拟一下
// 配置中心的代码没有实现,通过该方法模拟监听private void grpcAccept(string host, string port, string configSectionName){ConfigureCenter.ConfigureChanged += configuration=> Configure(configuration);}
ConfigureCenter的实现
public class ConfigureCenter{public ConfigureCenter() { }public event Action<Dictionary<string, string>> ConfigureChanged;public void PublishConfig(Dictionary<string, string> config){if (this.ConfigureChanged != null){ConfigureChanged(config);}}}
模拟配置中心发布了新的配置
var service= app.Services.GetService<INiuBService>();service.ConfigureCenter.PublishConfig(new Dictionary<string, string>() {{ "OrderService","{"Host":"http://niubi.com/api/order","descript":"订单服务地址"}"}});
通过API查看是否能获取到配置中心发布的配置
[Route("api/[Controller]")]public class OrderController : ControllerBase{public IConfiguration Configuration { get; set; }public OrderController(IConfiguration configuration ){this.Configuration = configuration;}[HttpGet]public string Get(){var value= https://www.isolves.com/it/cxkf/yy/net/2023-02-24/Configuration["OrderService"];return value == null ?"Empty": value;}}
请求结果
文章插图
推荐阅读
- 顶级域名自定义注册的方法 免费注册网站域名的方法
- 自定义网站建设需要哪些技巧,网站建设7个基本流程
- hmscore是什么软件可以卸载吗~hms core是什么软件?
- 教你自定义锁屏照片 自定义图片
- cdr文件用什么打开手机,快速查看Coreldraw文件版本的方法
- 华为hms是什么(华为hmscore)
- 自定义按键连发工具_电脑键盘总是连发怎么办?
- 一个接口优雅的实现 Spring Cloud OAuth2 自定义token返回格式
- 自定义状态栏怎么打开!手机状态栏怎么设置?
- cdr快捷键大全表格 cdr快捷键