1- using System ;
2- using System . IO ;
1+ using System . IO ;
32using Microsoft . Extensions . Configuration ;
43
54namespace Admin . Core . Common . Helpers
@@ -9,6 +8,17 @@ namespace Admin.Core.Common.Helpers
98 /// </summary>
109 public class ConfigHelper
1110 {
11+ /* 使用热更新
12+ var uploadConfig = new ConfigHelper().Load("uploadconfig", _env.EnvironmentName, true);
13+ services.Configure<UploadConfig>(uploadConfig);
14+
15+ private readonly UploadConfig _uploadConfig;
16+ public ImgController(IOptionsMonitor<UploadConfig> uploadConfig)
17+ {
18+ _uploadConfig = uploadConfig.CurrentValue;
19+ }
20+ */
21+
1222 /// <summary>
1323 /// 加载配置文件
1424 /// </summary>
@@ -18,7 +28,7 @@ public class ConfigHelper
1828 /// <returns></returns>
1929 public IConfiguration Load ( string fileName , string environmentName = "" , bool reloadOnChange = false )
2030 {
21- var filePath = Path . Combine ( AppContext . BaseDirectory , "configs" ) ;
31+ var filePath = Path . Combine ( Directory . GetCurrentDirectory ( ) , "configs" ) ;
2232 if ( ! Directory . Exists ( filePath ) )
2333 return null ;
2434
@@ -38,8 +48,8 @@ public IConfiguration Load(string fileName, string environmentName = "", bool re
3848 /// 获得配置信息
3949 /// </summary>
4050 /// <typeparam name="T">配置信息</typeparam>
41- /// <param name="fileName"></param>
42- /// <param name="environmentName">文件名称 </param>
51+ /// <param name="fileName">文件名称 </param>
52+ /// <param name="environmentName">环境名称 </param>
4353 /// <param name="reloadOnChange">自动更新</param>
4454 /// <returns></returns>
4555 public T Get < T > ( string fileName , string environmentName = "" , bool reloadOnChange = false )
@@ -50,5 +60,21 @@ public T Get<T>(string fileName, string environmentName = "", bool reloadOnChang
5060
5161 return configuration . Get < T > ( ) ;
5262 }
63+
64+ /// <summary>
65+ /// 绑定实例配置信息
66+ /// </summary>
67+ /// <param name="fileName">文件名称</param>
68+ /// <param name="instance">实例配置</param>
69+ /// <param name="environmentName">环境名称</param>
70+ /// <param name="reloadOnChange">自动更新</param>
71+ public void Bind ( string fileName , object instance , string environmentName = "" , bool reloadOnChange = false )
72+ {
73+ var configuration = Load ( fileName , environmentName , reloadOnChange ) ;
74+ if ( configuration == null )
75+ return ;
76+
77+ configuration . Bind ( instance ) ;
78+ }
5379 }
5480}
0 commit comments