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

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

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條評論
主站蜘蛛池模板: 四虎b7s22c0m| 免费a级特黄国产大片 | 国产www网站 | 免费性网站 | 亚洲啪啪免费视频 | 日本中文在线播放 | 欧美精欧美乱码一二三四区 | 看全色黄大色黄大片 视 | 色婷婷5月精品久久久久 | 国产成人精品一区二区免费视频 | 猫咪www免费人成在线观看网址 | 亚洲欧洲一二三区机械有限公司 | 四虎精品在线视频 | 久久综合伊人77777 | 伊人激情久久综合中文字幕 | 成人亚洲欧美日韩在线观看 | 国产一区二区三区不卡免费观看 | 国产精品爱久久 | 国产www在线播放 | 真实国产乱子伦精品免费 | 俺去鲁婷婷六月色综合 | 99精品久久| 久久国产精品亚洲va麻豆 | 国产美女福利视频 | 免费中文字幕一级毛片 | 国产欧美一区二区精品久久久 | 日韩中文字幕在线不卡 | 中中文字幕乱码 | 成人性a激情免费视频 | 国产精品一国产精品免费 | 国产大片中文字幕在线观看 | 欧美日韩不卡视频 | 年级的后妈妈2中文翻译 | 国产69精品久久久久999小说 | 精品一成人岛国片在线观看 | 欧美另类久久久精品 | 99九九99九九九视频精品 | 2021在线永久免费视频 | 成人在线一区二区 | 天天操免费视频 | 国产大尺度福利视频在线观看 |