首先需要在Web.Config或者App.Config中添加这行

<section name="ExManager" type="ExManagement.Config.ExSectionHandler, ExManagement.Config" />

  这句是指定用ExManagement.Config.ExSectionHandler类来处理ExManager配置节点

  节点  包含ErrorCodeSource和ConnectionString两个属性。

  ErrorCodeSource属性  该属性是设置从何种数据源获取错误编号与错误信息的对应关系。其值只能是枚举ErrorCodeSource的值:XML或者DB。

  ConnectionString属性  该属性是设置数据源的位置。若ErrorCodeSource属性设置的是XML,则此处为XML文件的FullName;若ErrorCodeSource属性设置的是DB,则此处为数据库的连接字符串。

  DataTable属性  设置记录异常日志使用的表名。

  节点  此节点为 节点的子节点,至少得有一个以上的子节点。包含Name、Type、ReturnMode以及AlertType属性。

  Name属性  为该异常处理器确定一个名称。在项目中调用异常处理方法时,需要指定这个名称。一般建议用层的名字或者项目的名字。

  Type属性  指定异常处理器的类,格式为Type=”ClassName, AssemblyName”。该类必须从ExHandlerBase继承。

  ReturnMode属性  异常处理器处理后返回给项目的值类型。对应枚举ExReturnMode的值,只能取Exception/ExceptionString/ErrorCode/ErrorString,分别含义是:抛出异常/返回异常详细描述/返回错误编号/返回错误信息。

  AlertType属性  报告异常信息的处理方式。对应枚举ExAlertType的值,只能取None/WebUI/WinUI。

  < LogHandler>节点  此节点为节点的子节点,节点可以有0到若干个< LogHandler>子节点。

  Type属性  用于指定日志记录处理器的类。格式为Type=”ClassName, AssemblyName”。该类必须实现IExLogHandler接口。

  ConnectionString属性  该属性是设置记录异常日志的数据源位置。

  DataTable属性  设置记录异常日志使用的表名。

  ExManagement.Interface包

  包含了IExLogHandler和I Message两个接口以及ExHandlerBase基类,可以通过实现这些接口来对框架进行扩展。如图三-3:

  图三-3

  以下是ExHandlerBase基类中加载所有异常日志对象的方法:

public void LoadLogHandler(ExManagerConfig.ExHandlerConfig config)

{

m_ExHandlerConfig = config;

foreach (ExManagerConfig.LogHandlerConfig logConfig in config.LogConfigColletion)

{

object exLogHandler = System.Activator.CreateInstance(Type.GetType(logConfig.Type));

lstLogHandler.Add(exLogHandler);

}

}

  通过遍历配置文件中该节包含的所有子节点,并将配置中指定的LogHandler类反射实例化,将对象存入队列中。

  ExManagement.MessageHandler包

  该包包含两个IMessage接口的实现,分别完成对异常信息在WinUI和WebUI中的弹出提示功能。WinFormMessage和WebMessage分别引用了System.Web.Dll和System. Windows.Forms.Dll。如图三-4。