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

📄 exmanagerconfig.cs

📁 异常处理包,通用 异常处理包,通用 异常处理包,通用
💻 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 + -