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

📄 commonsession.cs

📁 自己编写的基本Orcale的通用的数据库初始化工具。
💻 CS
📖 第 1 页 / 共 2 页
字号:
using System;
using System.Collections;

namespace DS.EMIS.StartPrepare.Common
{
	/// <summary>
	/// CommonSession 的摘要说明。
	/// </summary>
	public class CommonSession
	{
		#region delegate		
		public delegate Object MsgEventHandler(string sourceName,string infoTypeName,object infoTypeObj);
		#endregion
		
		#region private variable
		private Hashtable m_ListMsgObject = null;
//		private string username;
//		private string password;
//		private string serviceName;
		private string _license;
		private ManageConfigs manageConfigs = null;
		private ManageSQLScripts manageSQLScripts = null;
		private ManageSysLogs manageSysLogs = null;
		#endregion

		#region co
		public CommonSession(string license)
		{
			//
			// TODO: 在此处添加构造函数逻辑
			//
			this._license = license;
			if(this._license=="QAZXSW")
			{
				this.m_ListMsgObject = new Hashtable();
				this.manageConfigs = new ManageConfigs();
				this.manageSQLScripts = new ManageSQLScripts();
				this.manageSysLogs = new ManageSysLogs();
			}
		}
		#endregion
		#region Property
//		public string UserName
//		{
//			get
//			{
//				return this.username;
//			}
//			set 
//			{
//				this.username = value;
//			}
//		}
//		public string Password
//		{
//			get
//			{
//				return this.password;
//			}
//			set
//			{
//				this.password = value;
//			}
//		}
//		public string ServiceName
//		{
//			get{
//				return this.serviceName;
//			}
//			set{this.serviceName = value;}
//		}
		#endregion
		#region public Mothed
		#region about Message
		/// <summary>
		/// 注册你的消息接收方法
		/// </summary>
		/// <param name="myName">您的接收消息模块名称</param>
		/// <param name="msgEventHandler">消息接收方法</param>
		public void OnMsgEventHndler(string myName,MsgEventHandler msgEventHandler)
		{
			if(this._license!="QAZXSW")
				return ;

			MsgEventHandler pMsgEventHandler = null;
			pMsgEventHandler = this.FindMsgEventHndler(myName);
			if(pMsgEventHandler != null)
			{
				pMsgEventHandler +=msgEventHandler;
				this.m_ListMsgObject.Remove(myName);
				m_ListMsgObject.Add(myName,pMsgEventHandler);
			}
			else
			{
				pMsgEventHandler +=msgEventHandler;
				m_ListMsgObject.Add(myName,pMsgEventHandler);
			}
		}
		/// <summary>
		/// 不再接收消息,撤消注册
		/// </summary>
		/// <param name="myName">您的接收消息模块名称</param>
		/// <param name="msgEventHandler">消息接收方法</param>
		public void DeleteMsgEvent(string myName,MsgEventHandler msgEventHandler)
		{
			if(this._license!="QAZXSW")
				return ;
			MsgEventHandler pMsgEventHandler = null;
			pMsgEventHandler = this.FindMsgEventHndler(myName);
			if(pMsgEventHandler != null)
			{
				pMsgEventHandler -=msgEventHandler;
				this.m_ListMsgObject.Remove(myName);
				if(pMsgEventHandler != null)
					m_ListMsgObject.Add(myName,pMsgEventHandler);

			}
		}
		
		/// <summary>
		/// 同步方式一对一发送消息方法
		/// </summary>
		/// <param name="sourceName">本地模块名称</param>
		/// <param name="destName">目标模块名称</param>
		/// <param name="infoTypeName">消息类型</param>
		/// <param name="infoTypeObj">消息内容</param>
		/// <returns></returns>
		public Object SendMessage(string sourceName,string destName,string infoTypeName,object infoTypeObj)
		{
			if(this._license!="QAZXSW")
				return null;

			Object Obj = null;
			MsgEventHandler pMsgEventHandler = null;
			pMsgEventHandler = this.FindMsgEventHndler(destName);
			if(pMsgEventHandler != null)
			{
				MsgEventHandler myDelegate = null;
				System.Delegate[] Delegates = pMsgEventHandler.GetInvocationList();
				foreach (System.Delegate delegateItem in Delegates)
				{
					try
					{
						myDelegate = (MsgEventHandler) delegateItem;
						Obj = myDelegate(sourceName,infoTypeName,infoTypeObj);
					}
					catch
					{
						pMsgEventHandler -= myDelegate;
						
						this.m_ListMsgObject.Remove(destName);
						if(pMsgEventHandler != null)
							m_ListMsgObject.Add(destName,pMsgEventHandler);
					}
				}
			}
			return Obj;
		}
		/// <summary>
		/// 同步方式一对多发送消息方法
		/// </summary>
		/// <param name="sourceName">本地模块名称</param>
		/// <param name="destNames">目标模块名称列表</param>
		/// <param name="infoTypeName">消息类型</param>
		/// <param name="infoTypeObj">消息内容</param>
		/// <returns></returns>
		public Object SendMessage(string sourceName,string[] destNames,string infoTypeName,object infoTypeObj)
		{
			if(this._license!="QAZXSW")
				return null;

			Object Obj = null;
			MsgEventHandler pMsgEventHandler = null;
			for(int i=0;i<destNames.Length;i++)
			{
				pMsgEventHandler = this.FindMsgEventHndler(destNames[i]);
				if(pMsgEventHandler != null)
				{
					MsgEventHandler myDelegate = null;
					System.Delegate[] Delegates = pMsgEventHandler.GetInvocationList();
					foreach (System.Delegate delegateItem in Delegates)
					{
						try
						{
							myDelegate = (MsgEventHandler) delegateItem;
							Obj = myDelegate(sourceName,infoTypeName,infoTypeObj);
						}
						catch
						{
							pMsgEventHandler -= myDelegate;
						
							this.m_ListMsgObject.Remove(destNames[i]);
							if(pMsgEventHandler != null)
								m_ListMsgObject.Add(destNames[i],pMsgEventHandler);
						}
					}
				}
			}
			return Obj;
		}
		/// <summary>
		/// 同步广播发送信息方法
		/// </summary>
		/// <param name="sourceName">本地模块名称</param>
		/// <param name="infoTypeName">消息类型</param>
		/// <param name="infoTypeObj">消息内容</param>
		/// <returns></returns>
		public Object SendMessage(string sourceName,string infoTypeName,object infoTypeObj)
		{
			if(this._license!="QAZXSW")
				return null;

			Object Obj = null;
			MsgEventHandler pMsgEventHandler = null;
			string eventID = null;
			System.Collections.IEnumerator keyEnumerator = this.m_ListMsgObject.Keys.GetEnumerator();
			try
			{
				if(keyEnumerator != null)
				{
					while ( keyEnumerator.MoveNext() )
					{
						eventID=(string)keyEnumerator.Current;
						pMsgEventHandler = this.m_ListMsgObject[eventID] as MsgEventHandler;
						if(pMsgEventHandler != null)
						{
							MsgEventHandler myDelegate = null;
							System.Delegate[] Delegates = pMsgEventHandler.GetInvocationList();
							foreach (System.Delegate delegateItem in Delegates)
							{
								try
								{
									myDelegate = (MsgEventHandler) delegateItem;
									Obj = myDelegate(sourceName,infoTypeName,infoTypeObj);
								}
								catch
								{
									pMsgEventHandler -= myDelegate;
						
									this.m_ListMsgObject.Remove(eventID);
									if(pMsgEventHandler != null)
										m_ListMsgObject.Add(eventID,pMsgEventHandler);
								}
							}
						}
					}
				}
			}
			catch
			{

			}
			return Obj;
		}

		/// <summary>
		/// 异步方式一对一发送消息方法
		/// </summary>
		/// <param name="sourceName">本地模块名称</param>
		/// <param name="destName">目标模块名称</param>
		/// <param name="infoTypeName">消息类型</param>
		/// <param name="infoTypeObj">消息内容</param>

⌨️ 快捷键说明

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