Lose.zhang 发表于 2013-1-4 02:20:55

面向服务架构~全局配置文件也面向服务了

<div id="cnblogs_post_body">在面向服务中讲配置文件,肯定是要把它与具体领域分离,即它有普遍的一般性。在程序开发过程中,难免会用到一些易变性,全局的常量信息,我们通常的作法是把它们放在Web.config或者自定义的文件中,当然你的配置文件可以是XML,二进制的等等,但一般时候我们选择用XML标准的文件。
看全局配置项目的结构如下:
http://www.agoit.com/bbs/data:image/png;base64,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
下面我来介绍一下每个文件的使用:
ConfigFactory它是一个配置文件的工厂类,作用当然就是“从配置文件中生产对象”了,呵呵。(这讲不考虑性能问题)
<div class="cnblogs_code"> 1   /// <summary> 2   /// 配置信息生产工厂 3   /// </summary> 4   public class ConfigFactory 5     { 6         #region 私有 7 8         /// <summary> 9         /// 配置文件管理类10         /// </summary>11         static ConfigFilesManager cfm;12 13         #endregion14 15         #region 公开的属性16         public T GetConfig<T>() where T : IConfiger17       {18             string configFilePath = string.Empty;19             string filename = typeof(T).Name;20 21             HttpContext context = HttpContext.Current;22             string siteVirtrualPath = string.IsNullOrEmpty(ConfigurationManager.AppSettings["SiteVirtrualPath"]) ?23               "/" : ConfigurationManager.AppSettings["SiteVirtrualPath"];24             if (context != null)25             {26               configFilePath = context.Server.MapPath(string.Format("{0}/Configs/{1}.Config", siteVirtrualPath, filename));27             }28             else29             {30               configFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Configs\{0}.Config", filename);31             }32 33             if (!File.Exists(configFilePath))34             {35               throw new Exception("发生错误: 网站" +36                     new FileInfo("fileName").DirectoryName37                     + "目录下没有正确的.Config文件");38             }39 40             cfm = new ConfigFilesManager(configFilePath, typeof(T));41             return (T)cfm.LoadConfig();42       }43         #endregion44 45   }
页: [1]
查看完整版本: 面向服务架构~全局配置文件也面向服务了