系统配置文件的加载设置-以xml文件为例

前言:开发中经常会遇到加载一些配置文件信息,这些信息变化的概率很小,不需要实时的更新。这样的信息放在数据库里自然是不合适的,所以最好的办法是写在配置文件中,在程序第一次运行的时候加载到内存,以后用到的时候直接从内存读取就可以了。

这样做的好处:1、效率高,读取本地文件或内存信息和读取数据库中的信息,效率相比可想而知;2、不需要为这样的数据单独建立表;3,数据结构灵活,文件中的数据文件的结构组织很灵活。

下面是我的一种实现方式,仅供参考:

1.首先是配置文件类的设计。

 1 public static class AdminConfigManager
 2     {       
 3         public static IList<AdminUser> AdminUsers { get; } = new List<AdminUser>();
 4 
 5         #region 加载、保存相关
 6         /// <summary>
 7         /// 获取或设置配置文件路径。
 8         /// </summary>
 9         public static string ConfigFilePath { get; set; }
10         
11         /// <summary>
12         /// 加载配置。
13         /// </summary>
14         public static void LoadConfig()
15         {
16             XElement root = XElement.Load(ConfigFilePath);
17             AdminUsers.Clear();
18             foreach (XElement element in root.Elements("AdminUser"))
19             {
20                 AdminUser adminUser = new AdminUser();
21                 adminUser.Id = (string)element.Attribute("Id");
22                 adminUser.Name = (string)element.Attribute("Name");
23                 AdminUsers.Add(adminUser);
24             }
25         }
26 
27         /// <summary>
28         /// 保存配置。
29         /// </summary>
30         public static void SaveConfig()
31         {
32             XDocument doc = new XDocument(
33                 new XDeclaration("1.0", "utf-8", "yes"),
34                 new XElement("AdminConfig",
35                     from adminUser in AdminUsers
36                     select new XElement("AdminUser",
37                         new XAttribute("Id", adminUser.Id),
38                         new XAttribute("Name", adminUser.Name))));
39 
40             doc.Save(ConfigFilePath);
41         }
42         #endregion
43     }
44 
45     public sealed class AdminUser
46     {
47         public string Id { get; set; }
48         public string Name { get; set; }
49     }

2.使用实例

 1 static void Main(string[] args)
 2         {
 3             #region 1.0 加载配置
 4             //这段代码一般放在程序的启动入库处,比如web项目的Global.asax.cs文件的Application_Start()方法里
 5             AdminConfigManager.ConfigFilePath = @"../../AdminUserConfig.xml";//配置xml文件路径
 6             AdminConfigManager.LoadConfig();//加载文件 
 7             #endregion
 8 
 9             IList<AdminUser> andminUsers = AdminConfigManager.AdminUsers;
10 
11             #region 2.0 新增
12             AdminUser addAdminUser = new AdminUser();
13             addAdminUser.Id = "RJ";
14             addAdminUser.Name = "任静";
15             AdminConfigManager.AdminUsers.Add(addAdminUser);
16             AdminConfigManager.SaveConfig();
17             #endregion
18 
19             #region 3.0 删除
20             //AdminUser deleteAdminUser = AdminConfigManager.AdminUsers.Where(u => u.Id == "RJ").First();
21             //AdminConfigManager.AdminUsers.Remove(deleteAdminUser);
22             //AdminConfigManager.SaveConfig(); 
23             #endregion
24 
25             Console.ReadKey();
26         }

 3.xml文件效果实例

 

posted @ 2016-09-19 16:05  一品码农  阅读(877)  评论(0编辑  收藏  举报