MOSS 2007 应用随笔(20)-- 使用SPEventHandler事件处理程序(四)使事件处理程序具有通用性
Posted on 2008-06-30 00:19 乐土 阅读(397) 评论(2) 编辑 收藏 举报
我们在以前的过程中创建了文档库的事件处理程序,但是在表单库或者列表库中是不是也可以按照以上步骤进行呢
遗憾的是我们在表单库的高级设置中没有找到向后兼容的事件处理程序这个功能
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/EventHandler-30.jpg)
下面我们再来编写一个通用的事件处理程序:
首先新建一个类库的项目
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-31.jpg)
2
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-32.jpg)
项目新建好了以后,添加Microsoft.Sharepoint的引用
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-33.jpg)
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-34.jpg)
将生产目录改成C:\Inetpub\wwwroot\wss\VirtualDirectories\80\_app_bin
其中,80是应用程序的端口所对应的目录
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-35.jpg)
新建强名称密钥
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-36.jpg)
OK,事件处理程序的项目创建完成。
接下来我们还需要创建一个事件注册程序
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-37.jpg)
选择控制台应用程序,当然也可以是其他的项目模板,比如Windows应用程序
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-38.jpg)
新建一个列表库
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-39.jpg)
事件注册程序相关代码,从事件处理程序类别的枚举列表中我们可以看到都有哪些事件可以注册
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-391.jpg)
用反编译工具打开事件处理程序
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-392.jpg)
3
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-393.jpg)
在刚刚的列表库中新建一个项目,并试着将其删除
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-394.jpg)
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-395.jpg)
我们会看到程序中的错误提示
遗憾的是我们在表单库的高级设置中没有找到向后兼容的事件处理程序这个功能
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/EventHandler-30.jpg)
下面我们再来编写一个通用的事件处理程序:
首先新建一个类库的项目
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-31.jpg)
2
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-32.jpg)
项目新建好了以后,添加Microsoft.Sharepoint的引用
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-33.jpg)
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-34.jpg)
将生产目录改成C:\Inetpub\wwwroot\wss\VirtualDirectories\80\_app_bin
其中,80是应用程序的端口所对应的目录
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-35.jpg)
新建强名称密钥
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-36.jpg)
OK,事件处理程序的项目创建完成。
接下来我们还需要创建一个事件注册程序
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-37.jpg)
选择控制台应用程序,当然也可以是其他的项目模板,比如Windows应用程序
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-38.jpg)
新建一个列表库
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-39.jpg)
事件注册程序相关代码,从事件处理程序类别的枚举列表中我们可以看到都有哪些事件可以注册
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-391.jpg)
用反编译工具打开事件处理程序
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-392.jpg)
3
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-393.jpg)
在刚刚的列表库中新建一个项目,并试着将其删除
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-394.jpg)
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-395.jpg)
我们会看到程序中的错误提示
![](https://www.cnblogs.com/images/cnblogs_com/enjoyment/EventHandler/enventhandler-396.jpg)