⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 configurationmanager.cs

📁 应用框架的设计与实现的源代码(SAF) 《应用框架的设计与实现》随书源码
💻 CS
字号:
using System;
using System.Xml;
using SAF.Configuration;

namespace Application.Configuration
{
	/// <summary>
	/// A sample configuration system for the business application
	/// it shows how you can extend the SAF.Configuraiton with your custom
	/// configuration manager and objectsl
	/// </summary>
	public class AppConfigurationManager
	{
		public DatabaseConfiguration DatabaseConfig;
		public MessageQueueConfiguration MessageQueueConfig;
		private XmlNode configurationData;
		/// <summary>
		/// the constructor start the chain reaction of 
		/// creating all the configuration object used by the application
		/// </summary>
		/// <param name="sections">the xml element containing the configuraiton settings</param>
		public AppConfigurationManager(XmlNode sections)
		{
			configurationData = sections;
			ConfigurationAgentManager cam = new ConfigurationAgentManager(configurationData);
			//create the indivdual configuraiton object and assign them to the public fields
			DatabaseConfig = new DatabaseConfiguration(cam.GetData("Application.Database"));
			MessageQueueConfig = new MessageQueueConfiguration(cam.GetData("Application.MessageQueue"));
		}
	}

	/// <summary>
	/// Sample configuraiton object
	/// </summary>
	public class DatabaseConfiguration 
	{
		
		private XmlNode databaseXml;
		/// <summary>
		/// constructor is called by the configuration manager.
		/// </summary>
		/// <param name="configData"></param>
		public DatabaseConfiguration (XmlNode configData)
		{
			databaseXml = configData;	
		}
		/// <summary>
		/// method that parse the information out of the Xml
		/// </summary>
		/// <returns></returns>
		public string GetDatabaseConnection()
		{
			return databaseXml.SelectSingleNode("ConnectionString").InnerText;
		}
	}

	/// <summary>
	/// sample configuration object
	/// </summary>
	public class MessageQueueConfiguration
	{
		private XmlNode mqXml;
		/// <summary>
		/// the constructor is called by configuration manager
		/// </summary>
		/// <param name="configData"></param>
		public MessageQueueConfiguration(XmlNode configData)
		{
			mqXml = configData;
		}

		/// <summary>
		/// method that parse the information out of the Xml
		/// </summary>
		/// <returns></returns>
		public string GetCustomerQueueLocation()
		{
			return mqXml.SelectSingleNode("CustomerQueue").InnerText;
		}

		/// <summary>
		/// method that parse the information out of the Xml
		/// </summary>
		/// <returns></returns>
		public string GetAccountQueueLocation()
		{
			return mqXml.SelectSingleNode("AccountQueue").InnerText;
		}
	}
}

⌨️ 快捷键说明

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