CS前置/后置事件框架
2007-05-21 16:26
190 查看
把CommunityServer的事件框架应用到当前的项目中,可以在一个方法调用中设置其前置和后置事件,从而把一个额外的业务处理外置到别的模块中进行独立处理。
1、需要定义一系列的委托,如public delegate void PSPRoleEventHandler(PRole pRole, PSEventArgs e);委托参数的定义决定以后事件的参数,这里的PSEventArgs用于表示一些通用的参数传入,例如ObjectState针对对象操作的状态。
public enum ObjectState
public class PSEventArgs : EventArgs
public class PSApplication
其中的internal static PSApplication Instance()方法用于实例化PSApplication对象并从配置文件中加载事件真实实现的模块信息,例如模块配置可以写成这样:
<Configurations>
<PSModules>
<add name="PRoleModule" type="CSDN.PermissionService.Components.PRoleModule, CSDN.PermissionService.Components" />
</PSModules>
</Configurations>
这样通过组件CSDN.PermissionService.Components中的CSDN.PermissionService.Components.PRoleModule模块就可以加载对角色操作的一些前后事件的功能
public event PSPRoleEventHandler PrePRoleUpdate 添加或移除在PRole数据保存到数据库之前的触发事件
public event PSPRoleEventHandler PRoleUpdate 添加或移除在PRole数据保存到数据库之后的触发事件
private EventHandlerList Events = new EventHandlerList(); 用于保存一下委托的事件列表
对于模块设计需要定实现一个IPSModule接口
public interface IPSModule
public class PRoleModule : IPSModule
public class PSEvents
{
PRoles#region PRoles
public static void BeforePRole(PRole pRole, ObjectState state)
{
PSApplication.Instance().ExecutePrePRoleUpdate(pRole, state);
}
public static void AfterPRole(PRole pRole, ObjectState state)
{
PSApplication.Instance().ExecutePRoleUpdate(pRole, state);
}
#endregion
}
1、需要定义一系列的委托,如public delegate void PSPRoleEventHandler(PRole pRole, PSEventArgs e);委托参数的定义决定以后事件的参数,这里的PSEventArgs用于表示一些通用的参数传入,例如ObjectState针对对象操作的状态。
public enum ObjectState
public class PSEventArgs : EventArgs
public class PSApplication
其中的internal static PSApplication Instance()方法用于实例化PSApplication对象并从配置文件中加载事件真实实现的模块信息,例如模块配置可以写成这样:
<Configurations>
<PSModules>
<add name="PRoleModule" type="CSDN.PermissionService.Components.PRoleModule, CSDN.PermissionService.Components" />
</PSModules>
</Configurations>
这样通过组件CSDN.PermissionService.Components中的CSDN.PermissionService.Components.PRoleModule模块就可以加载对角色操作的一些前后事件的功能
public event PSPRoleEventHandler PrePRoleUpdate 添加或移除在PRole数据保存到数据库之前的触发事件
public event PSPRoleEventHandler PRoleUpdate 添加或移除在PRole数据保存到数据库之后的触发事件
private EventHandlerList Events = new EventHandlerList(); 用于保存一下委托的事件列表
对于模块设计需要定实现一个IPSModule接口
public interface IPSModule
public class PRoleModule : IPSModule
public class PSEvents
{
PRoles#region PRoles
public static void BeforePRole(PRole pRole, ObjectState state)
{
PSApplication.Instance().ExecutePrePRoleUpdate(pRole, state);
}
public static void AfterPRole(PRole pRole, ObjectState state)
{
PSApplication.Instance().ExecutePRoleUpdate(pRole, state);
}
#endregion
}
相关文章推荐
- CS前置/后置事件框架
- javascript事件模型框架-eventutil.js
- 前端-mui框架的div侧拉菜单,导致页面中按钮的点击事件无法响应的问题
- 事件驱动框架(三)——pt协程
- libevent源码分析--事件处理框架
- Nova PhoneGap框架 第七章 设备事件处理
- 前置运算符与后置运算符的区别
- 树形菜单tag框架 非树形的点击事件
- Spring 4.2框架中注释驱动的事件监听器详解
- 关于事件总线框架EventBus和otto一些分析总结
- 设计模式实例——基于命令模式的事件处理框架
- jquery在子框架中获得父框架中的id事件
- HTML5 经量级框架 jQuery Mobile (配置选项,Enent 事件,主题系统) - 7.9
- 添加/删除请求开始事件的方法 (asp.net ajax框架)
- 前置自增与后置自增(数组倒置)
- 浏览器窗口大小变化时使用resize事件对框架不起作用的解决方法
- operator++ 的前置、后置 两个 operator*
- hibernate 拦截器和事件框架
- hibernate 拦截器和事件框架
- Android前置后置摄像头录制视频综合版