extensionconfig.cs

来自「该项目中对 SQLHelper 类进行了简单封装」· CS 代码 · 共 87 行

CS
87
字号
/* 
 * ExtensionConfig.cs @Microsoft Visual Studio 2005 <.NET Framework 2.0>
 * AfritXia
 * 2007-05-08
 * 
 * Copyright(c) http://www.AfritXia.NET/
 * 
 */

using System;
using System.Collections.Generic;
using System.Xml;

namespace NET.AfritXia.MyHome.SystemConf
{
	/// <summary>
	/// 扩展配置信息
	/// </summary>
	public class ExtensionConfig
	{
		// 扩展工厂类集合
		private List<ExtensionFactoryClass> m_factoryClassList = new List<ExtensionFactoryClass>();

		#region 类 ExtensionConfig 构造器
		/// <summary>
		/// 类 ExtensionConfig 默认构造器
		/// </summary>
		private ExtensionConfig()
		{
		}
		#endregion

		/// <summary>
		/// 获取群类型集合
		/// </summary>
		public IList<ExtensionFactoryClass> ExtensionFactoryClassList
		{
			get
			{
				return this.m_factoryClassList;
			}
		}

		/// <summary>
		/// 创建扩展配置信息实例
		/// </summary>
		/// <param name="rootConfNode"></param>
		/// <returns></returns>
		public static ExtensionConfig CreateInstance(XmlNode rootConfNode)
		{
			ExtensionConfig extensionConf = new ExtensionConfig();

			if (rootConfNode == null)
				return extensionConf;

			// 获取扩展节点集合
			XmlNodeList extensionNodeList = rootConfNode.SelectNodes("extension[@enabled='true']");

			if (extensionNodeList == null || extensionNodeList.Count <= 0)
				return extensionConf;

			// 创建扩展工厂类集合
			extensionConf.m_factoryClassList = new List<ExtensionFactoryClass>();

			foreach (XmlNode extensionNode in extensionNodeList)
			{
				ExtensionFactoryClass efc = new ExtensionFactoryClass();
				// 优先级
				string strPriority = null;

				if (extensionNode.Attributes["priority"] != null)
					strPriority = extensionNode.Attributes["priority"].Value;

				// 设置优先级
				efc.Priority = Convert.ToInt32(strPriority);
				// 设置群类型名称
				efc.FactoryType = Type.GetType(extensionNode.InnerText);

				// 添加扩展类到集合
				extensionConf.m_factoryClassList.Add(efc);
			}

			return extensionConf;
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?