对获取config文件的appSettings节点简单封装
C#的开发中,无论你是winform开发还是webform开发,都需要通过config文件来配置一些信息,因此我们也经常需要获取其中的appSettings节点的值。当然,.net已经对访问这个节点做了封装,我们可以很方便的访问该节点。但是,我觉得还是不够满意,因为我需要在获取不到节点的时候能够返回默认的值,获取的时候能够自动转为我需要的类型,我需要能够随时指定config文件,而不仅仅是默认的web.config文件或者是*.exe.config文件。尤其最后的那个功能,嘿嘿,别以为这个没有用,有时候,我们是需要共用一个配置文件的。比如你在开发Windows服务的时候,你不会希望你用界面的那个程序和Windows服务的程序有两个一样的配置文件吧
直接贴代码:
1 /// <summary>
2 /// 获取AppSetting里面的内容
3 /// </summary>
4 /// <typeparam name="T"></typeparam>
5 /// <param name="defaultValue">The default value.</param>
6 /// <param name="key">The key.</param>
7 /// <returns></returns>
8 public static T GetAppSettingValue<T>(T defaultValue, string key)
9 {
10 string value = ConfigurationManager.AppSettings[key];
11 if (!string.IsNullOrEmpty(value))
12 {
13 try
14 {
15 defaultValue = (T)Convert.ChangeType(value, typeof(T));
16 }
17 catch
18 {
19 }
20 }
21 return defaultValue;
22 }
23
24 /// <summary>
25 /// 获取指定的Config文件的AppSetting里面的指定键值对应的value值
26 /// </summary>
27 /// <typeparam name="T"></typeparam>
28 /// <param name="defaultValue">The default value.</param>
29 /// <param name="key">The key.</param>
30 /// <param name="file">The file.</param>
31 /// <returns></returns>
32 public static T GetAppSettingValue<T>(T defaultValue, string key, string file)
33 {
34 var map = new ExeConfigurationFileMap
35 {
36 ExeConfigFilename = file
37 };
38 Configuration config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
39 string value = config.AppSettings.Settings[key].Value;
40
41 if (!string.IsNullOrEmpty(value))
42 {
43 try
44 {
45 defaultValue = (T)Convert.ChangeType(value, typeof(T));
46 }
47 catch
48 {
49 }
50 }
51 return defaultValue;
52 }
2 /// 获取AppSetting里面的内容
3 /// </summary>
4 /// <typeparam name="T"></typeparam>
5 /// <param name="defaultValue">The default value.</param>
6 /// <param name="key">The key.</param>
7 /// <returns></returns>
8 public static T GetAppSettingValue<T>(T defaultValue, string key)
9 {
10 string value = ConfigurationManager.AppSettings[key];
11 if (!string.IsNullOrEmpty(value))
12 {
13 try
14 {
15 defaultValue = (T)Convert.ChangeType(value, typeof(T));
16 }
17 catch
18 {
19 }
20 }
21 return defaultValue;
22 }
23
24 /// <summary>
25 /// 获取指定的Config文件的AppSetting里面的指定键值对应的value值
26 /// </summary>
27 /// <typeparam name="T"></typeparam>
28 /// <param name="defaultValue">The default value.</param>
29 /// <param name="key">The key.</param>
30 /// <param name="file">The file.</param>
31 /// <returns></returns>
32 public static T GetAppSettingValue<T>(T defaultValue, string key, string file)
33 {
34 var map = new ExeConfigurationFileMap
35 {
36 ExeConfigFilename = file
37 };
38 Configuration config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
39 string value = config.AppSettings.Settings[key].Value;
40
41 if (!string.IsNullOrEmpty(value))
42 {
43 try
44 {
45 defaultValue = (T)Convert.ChangeType(value, typeof(T));
46 }
47 catch
48 {
49 }
50 }
51 return defaultValue;
52 }
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!如果您想持续关注我的文章,请扫描二维码,关注马非码的微信公众号,我会将我的文章推送给您,并和您一起分享我日常阅读过的优质文章。
本文版权归作者和博客园共有,来源网址:http://www.cnblogs.com/marvin/欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南