///配置文件自定管理類///開發者:歐元寒玟///開發時間:" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

CWF框架之ConfigManager,讓“config”為您服務

系統 1829 0

這個框架用來解決自己的配置問題,為整個CWF框架的底層服務構架,他為上面的數據持久和緩存或者其它服務提供配置信息.

using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
using System.Xml;
namespace CWF.ConfigManager
{
??? /// <summary>
??? /// 配置文件自定管理類
??? /// 開發者:歐元寒玟
??? /// 開發時間:2010.02.05
??? /// 最后修改時間:2010.02.05
??? /// </summary>
??? public class ConfigManagerHander:IConfigurationSectionHandler??
??? {
??????? #region IConfigurationSectionHandler 成員
??????? /// <summary>
??????? /// 實現接口的方法處理xml入口
??????? /// </summary>
??????? /// <param name="parent"></param>
??????? /// <param name="configContext"></param>
??????? /// <param name="section"></param>
??????? /// <returns></returns>
??????? public object Create(object parent, object configContext, System.Xml.XmlNode section)
??????? {
??????????? return new ConfigManager(section);
??????? }

??????? #endregion
??? }
}

using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Reflection ;
namespace CWF.ConfigManager
{
??? /// <summary>
??? /// 實現配置文件處理的主要類
??? /// 開發者:歐元寒玟
??? /// 開發時間:2010.02.05
??? /// 最后修改時間:2010.02.05
??? /// </summary>
??? public? class ConfigManager
??? {
??????? /// <summary>
??????? /// 配置文件根節點
??????? /// </summary>
??????? private XmlNode section;
??????? /// <summary>
??????? /// 實例化
??????? /// </summary>
??????? /// <param name="Section"></param>
??????? public ConfigManager(XmlNode Section)
??????? {
??????????? section = Section;
??????? }
??????? /// <summary>
??????? /// 獲取類工廠
??????? /// </summary>
??????? /// <returns></returns>
??????? public ClassFactory getFactory()
??????? {
??????????? XmlNode factory = section.SelectSingleNode("http://classFactory");
??????????? return new ClassFactory(factory);
??????? }
??????? /// <summary>
??????? /// 獲取Windows服務
??????? /// </summary>
??????? /// <returns></returns>
??????? public WinServiceConfig getWinService()
??????? {
??????????? XmlNode ServiceNode = section.SelectSingleNode("http://windowsSercice");
??????????? return new WinServiceConfig(ServiceNode);
??????? }
??????? /// <summary>
??????? /// 獲取緩存對象類
??????? /// </summary>
??????? /// <returns></returns>
??????? public CacheConfig getCacheConfig()
??????? {
??????????? XmlNode ServiceNode = section.SelectSingleNode("http://cacheService");
??????????? return new CacheConfig(ServiceNode);
??????? }
??? }

??? /// <summary>
??? /// 類工廠服務
??? /// </summary>
??? public class ClassFactory
??? {
??????? private XmlNode node;
??????? /// <summary>
??????? /// 實例化
??????? /// </summary>
??????? /// <param name="factoryNode"></param>
??????? public ClassFactory(XmlNode factoryNode)
??????? {
??????????? node = factoryNode;
??????? }
??????? /// <summary>
??????? /// 獲取類
??????? /// </summary>
??????? /// <param name="className">類名</param>
??????? /// <returns>object</returns>
??????? public object getClass(string className)
??????? {
??????????? XmlNode classNode = node.SelectSingleNode("http://class[@name='"+className+"']");
??????????? object classObject = null;
??????????? if(classNode !=null)
??????????? {
??????????????? string StrType= classNode.Attributes["type"].Value;
??????????????? string url = null;
??????????????? Type type = Type.GetType(StrType);
??????????????? if (classNode.Attributes["url"] != null && classNode.Attributes["url"].Value != "")
??????????????? {
??????????????????? url = classNode.Attributes["url"].Value;
??????????????????? try
??????????????????? {
??????????????????????? classObject = Activator.GetObject(type, url);
??????????????????? }
??????????????????? catch
??????????????????? {
??????????????????? }
??????????????? }
??????????????? else
??????????????? {
??????????????????? try
??????????????????? {
??????????????????????? classObject = Activator.CreateInstance(type, null);
??????????????????? }
??????????????????? catch
??????????????????? {
??????????????????? }
??????????????? }
??????????? }
??????????? return classObject;
??????? }
??????? /// <summary>
??????? /// 獲取一個類工廠組的所有實例
??????? /// </summary>
??????? /// <param name="GroupName">組名</param>
??????? /// <returns></returns>
??????? public List<object> getClassGroup(string GroupName)
??????? {
??????????? XmlNode GroupNode = node.SelectSingleNode("http://classGroup[@name='" + GroupName + "']");
??????????? List<object> list = new List<object>();
??????????? for (int i = 0; i < GroupNode.ChildNodes.Count; i++)
??????????? {
??????????????? if (GroupNode.ChildNodes[i].Attributes["type"].Value != "")
??????????????? {
??????????????????? Type type = Type.GetType(GroupNode.ChildNodes[i].Attributes["type"].Value);
??????????????????? list.Add(Activator.CreateInstance(type,null));
??????????????? }
??????????? }
??????????? return list;
??????? }
??? }

??? /// <summary>
??? /// Windows Services服務
??? /// </summary>
??? public class WinServiceConfig
??? {
??????? private XmlNode RootNode;
??????? public WinServiceConfig(XmlNode ServiceNode)
??????? {
??????????? RootNode = ServiceNode;
??????? }
??????? /// <summary>
??????? /// 獲取所有服務的列表
??????? /// </summary>
??????? /// <returns></returns>
??????? public List<object> getIServers()
??????? {
??????????? List<object> objServerList=new List<object>();
??????????? foreach (XmlNode node in RootNode.SelectNodes("service"))
??????????? {
??????????????? if (node != null && node.Attributes["type"] != null && node.Attributes["type"].Value != "")
??????????????? {
??????????????? Type type=Type.GetType(node.Attributes["type"].Value);
??????????????? IServerObj obj = new IServerObj(Activator.CreateInstance(type, null), node.Attributes["type"].Value, node.Attributes["type"].Value, node.Attributes["type"].Value);
??????????????? objServerList.Add(obj);
??????????????? }
??????????? }
??????????? return objServerList;
??????? }
??? }
??? /// <summary>
??? /// windows服務接口的結構類
??? /// </summary>
??? public class IServerObj
??? {
??????? private object service;
??????? private string domain;
??????? private string username;
??????? private string userpwd;
??????? public IServerObj(object _service, string _domain,string _username, string _userpwd)
??????? {
??????????? service = _service;
??????????? domain = _domain;
??????????? username = _username;
??????????? userpwd = _userpwd;
??????? }
??????? /// <summary>
??????? /// 服務對象
??????? /// </summary>
??????? public object Service
??????? {
??????????? get {return service; }
??????? }
??????? /// <summary>
??????? /// 服務域
??????? /// </summary>
??????? public string Domain
??????? {
??????????? get { return domain; }
??????? }
??????? /// <summary>
??????? /// 安全帳號
??????? /// </summary>
??????? public string Username
??????? {
??????????? get { return username; }
??????? }
??????? /// <summary>
??????? /// 安全密碼
??????? /// </summary>
??????? public string Userpwd
??????? {
??????????? get { return userpwd; }
??????? }
??? }

??? /// <summary>
??? /// 緩存服務
??? /// </summary>
??? public class CacheConfig
??? {
??????? private XmlNode node;
??????? private object cacheObj = null;
??????? public CacheConfig(XmlNode xml)
??????? {
??????????? node = xml;
??????? }
??????? /// <summary>
??????? /// 獲取緩存對象
??????? /// </summary>
??????? /// <param name="CacheName">緩存名稱</param>
??????? /// <returns></returns>
??????? public object getCache(string CacheName)
??????? {
??????????? if (node != null && node.HasChildNodes)
??????????? {
??????????????? XmlNode nodech = node.SelectSingleNode("http://cache[@name='" + CacheName + "']");
??????????????? string typestr = nodech.Attributes["type"].Value;
??????????????? Type type = Type.GetType(typestr);
??????????????? cacheObj = Activator.CreateInstance(type, null);
??????????? }
??????????? return cacheObj;
??????? }
??? }
}

通過這樣的配置后我們需要的額外信息就可以直接通過這個類找配置文件要了.

CWF框架之ConfigManager,讓“config”為您服務


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美日韩国产成人综合在线影院 | 成人做爰毛片免费视频 | 国内精品日本久久久久影院 | 久章草在线视频 | 国产精品香蕉一区二区三区 | 天海翼一区二区在线观看 | 欧美亚洲国产精品久久久久 | 久久精品福利 | 天天操夜夜操美女 | 全网毛片 | 日本精品视频一视频高清 | 国产精品久久国产三级国电话系列 | www色综合 | 精品一区二区三 | 亚洲综合色区图片区 | 免费一级毛片免费播放 | 久久美女视频 | 香蕉久久一区二区三区 | 亚洲欧美日韩高清专区一区 | 成年人一级毛片 | 一级做a爱片久久蜜桃 | 日日夜夜天天干干 | 中文字幕欧美日韩va免费视频 | 日本二区视频 | 免费看欧美理论片在线 | 久久免费视频2 | 欧美日韩高清一区 | 免费黄色小视频在线观看 | 夜色福利一区二区三区 | 97精品国产综合久久 | 欧美日韩成人高清色视频 | 久久久久女人精品毛片 | 日韩不卡 | 成年人网站在线 | 99综合之综合久久伊人 | 亚洲精品一区 | 综合久久99久久99播放 | 久草在线首页 | 亚洲乱强 | 久久国产精品免费观看 | 中国国产一国产一级毛片视频 |