📄 exmanagerconfig.cs
字号:
using System;
using System.Collections;
namespace ExManagement.Config
{
/// <summary>
/// 异常返回模式枚举
/// Exception :以异常形式向上抛出捕捉到的异常
/// ErrorCode :以错误代码的形式返回异常
/// None :不作任何返回
/// </summary>
public enum ExReturnMode{Exception = 1, ExceptionString, ErrorCode, ErrorString};
/// <summary>
/// 异常提示方式
/// None :不会去调用弹出异常信息处理方法
/// WebUI :调用JS弹出异常信息
/// WinUI :调用MessageBox弹出异常信息
/// </summary>
public enum ExAlertType{None = 1, WebUI, WinUI}
/// <summary>
/// 根据ErrorCode获取异常信息的方式
/// XML,从XML文件获取
/// DB,从数据库获取
/// </summary>
public enum ErrorCodeSource{XML = 1, DB = 2}
/// <summary>
/// ExManager配置信息实体类,与配置文件中各节点和属性对应
/// </summary>
public class ExManagerConfig:CollectionBase
{
#region ExHandler节的配置信息实体类
/// <summary>
/// ExHandler节的配置信息实体类
/// </summary>
public class ExHandlerConfig
{
#region 私有变量
private string m_Name;
private string m_Type;
private ExReturnMode m_ReturnMode;
private ExAlertType m_AlertType;
private LogHandlerConfigCollection m_LogHandlerConfigCollection;
#endregion
#region 属性
/// <summary>
/// 该异常管理器名称
/// </summary>
public string Name
{
get
{
return m_Name;
}
set
{
m_Name = value;
}
}
/// <summary>
/// 异常管理器类集
/// </summary>
public string Type
{
get
{
return m_Type;
}
set
{
m_Type = value;
}
}
/// <summary>
/// 异常管理器返回信息类型
/// Exception :以异常形式向上抛出捕捉到的异常
/// ErrorCode :以错误代码的形式返回异常
/// ErrorString :以错误信息方式返回异常
/// </summary>
public ExReturnMode ReturnMode
{
get
{
return m_ReturnMode;
}
set
{
m_ReturnMode = value;
}
}
/// <summary>
/// 异常提示方式
/// None :不会去调用弹出异常信息处理方法
/// WebUI :调用JS弹出异常信息
/// WinUI :调用MessageBox弹出异常信息
/// </summary>
public ExAlertType AlertType
{
get
{
return m_AlertType;
}
set
{
m_AlertType = value;
}
}
/// <summary>
/// 该异常处理类将使用的日志记录处理配置信息
/// </summary>
public LogHandlerConfigCollection LogConfigColletion
{
get
{
return m_LogHandlerConfigCollection;
}
set
{
m_LogHandlerConfigCollection = value;
}
}
#endregion
}
#endregion
#region LogHandler节的配置信息实体类
/// <summary>
/// LogHandler节的配置信息实体类
/// </summary>
public class LogHandlerConfig
{
private string m_Type;
private string m_ConnectionString;
private string m_DataTable;
/// <summary>
/// 异常日志处理类名称
/// </summary>
public string Type
{
get
{
return m_Type;
}
set
{
m_Type = value;
}
}
/// <summary>
/// 用于记录异常日志的数据库连接字符串
/// </summary>
public string ConnectionString
{
get
{
return m_ConnectionString;
}
set
{
m_ConnectionString = value;
}
}
/// <summary>
/// 用于记录异常日志的数据库表名
/// </summary>
public string DataTable
{
get
{
return m_DataTable;
}
set
{
m_DataTable = value;
}
}
}
#endregion
#region LogHandler节配置节信息实体集合类
public class LogHandlerConfigCollection:CollectionBase
{
/// <summary>
/// 索引器,检索包含的详细
/// </summary>
public LogHandlerConfig this[int index]
{
get
{
return List[index] as LogHandlerConfig;
}
}
public int Add( LogHandlerConfig value )
{
return( List.Add( value ) );
}
public int IndexOf( LogHandlerConfig value )
{
return( List.IndexOf( value ) );
}
public void Insert( int index, LogHandlerConfig value )
{
List.Insert( index, value );
}
public void Remove( LogHandlerConfig value )
{
List.Remove( value );
}
public bool Contains( LogHandlerConfig value )
{
return( List.Contains( value ) );
}
protected override void OnInsert( int index, Object value )
{
if ( value.GetType() != Type.GetType("ExManagement.ExManagerConfig+LogHandlerConfig") )
throw new ArgumentException( "值必须是LogHandlerConfig类型.", "value" );
}
protected override void OnRemove( int index, Object value )
{
if ( value.GetType() != Type.GetType("ExManagement.ExManagerConfig+LogHandlerConfig") )
throw new ArgumentException( "值必须是LogHandlerConfig类型.", "value" );
}
protected override void OnSet( int index, Object oldValue, Object newValue )
{
if ( newValue.GetType() != Type.GetType("ExManagement.ExManagerConfig+LogHandlerConfig") )
throw new ArgumentException( "值必须是LogHandlerConfig类型.", "newValue" );
}
protected override void OnValidate( Object value )
{
if ( value.GetType() != Type.GetType("ExManagement.ExManagerConfig+LogHandlerConfig") )
throw new ArgumentException( "值必须是LogHandlerConfig类型." );
}
}
#endregion
#region ExManagerConfig类主体
private ErrorCodeSource m_ErrorCodeSource;
private string m_ConnectionString;
private string m_DataTable;
/// <summary>
/// 获取错误信息的方式
/// </summary>
public ErrorCodeSource ErrorCodeSource
{
get
{
return m_ErrorCodeSource;
}
set
{
m_ErrorCodeSource = value;
}
}
/// <summary>
/// 数据来源字符串:XML为文件地址;数据库则为连接字符串
/// </summary>
public string ConnectionString
{
get
{
return m_ConnectionString;
}
set
{
m_ConnectionString = value;
}
}
/// <summary>
/// 数据库表名称
/// </summary>
public string DataTable
{
get
{
return m_DataTable;
}
set
{
m_DataTable = value;
}
}
/// <summary>
/// 索引器,检索包含的详细
/// </summary>
public ExHandlerConfig this[int index]
{
get
{
return List[index] as ExHandlerConfig;
}
}
public ExHandlerConfig this[string strHandlerName]
{
get
{
foreach (ExHandlerConfig config in List)
{
if(config.Name == strHandlerName)
{
return config;
}
}
return null;
}
}
public int Add( ExHandlerConfig value )
{
return( List.Add( value ) );
}
public int IndexOf( ExHandlerConfig value )
{
return( List.IndexOf( value ) );
}
public void Insert( int index, ExHandlerConfig value )
{
List.Insert( index, value );
}
public void Remove( ExHandlerConfig value )
{
List.Remove( value );
}
public bool Contains( ExHandlerConfig value )
{
return( List.Contains( value ) );
}
protected override void OnInsert( int index, Object value )
{
if ( value.GetType() != Type.GetType("ExManagement.ExManagerConfig+ExHandlerConfig") )
throw new ArgumentException( "值必须是ExHandlerConfig类型.", "value" );
}
protected override void OnRemove( int index, Object value )
{
if ( value.GetType() != Type.GetType("ExManagement.ExManagerConfig+ExHandlerConfig") )
throw new ArgumentException( "值必须是ExHandlerConfig类型.", "value" );
}
protected override void OnSet( int index, Object oldValue, Object newValue )
{
if ( newValue.GetType() != Type.GetType("ExManagement.ExManagerConfig+ExHandlerConfig") )
throw new ArgumentException( "值必须是ExHandlerConfig类型.", "newValue" );
}
protected override void OnValidate( Object value )
{
if ( value.GetType() != Type.GetType("ExManagement.ExManagerConfig+ExHandlerConfig") )
throw new ArgumentException( "值必须是ExHandlerConfig类型." );
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -