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

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

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條評論
主站蜘蛛池模板: 久久伊人免费 | 97色在线视频 | 五月桃花网婷婷亚洲综合 | 久久精品国产只有精品6 | 亚洲福利一区福利三区 | 久久99精品国产麻豆不卡 | 色偷偷亚洲女人天堂观看欧 | 西西人体大胆77777视频 | 国产精品一区久久精品 | 黄在线免费看 | 免费a视频在线观看 | 99久久精品费精品国产 | 天天射天天干天天 | 亚洲成a人v| 国产精品久久久久不卡绿巨人 | 亚洲黄色免费在线观看 | 四虎在线最新地址公告 | 欧美精品中文字幕手机免费视频 | 亚洲韩精品欧美一区二区三区 | 啪啪毛片 | 热99这里有精品综合久久 | 久草综合视频 | 久久中文字幕久久久久 | 加勒比一本大道在线 | 日本α级毛片视频免费观看 | 国产情侣普通话刺激对白 | 激情网站视频 | 一级成人毛片免费观看 | 久久国产精品亚洲va麻豆 | 综合激情五月婷婷 | 日本韩国欧美在线 | 亚洲图片欧美视频 | 欧美不卡影院 | 福利一区在线视频 | 国产精自产拍久久久久久 | 久久久国产99久久国产一 | 美女又黄又免费的视频 | 成年女人18级毛片毛片免费观看 | 美国黑人特大一级毛片 | 欧美精品视 | 亚洲精品视频一区 |