📄 commonsession.cs
字号:
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 + -