【List Event Receivers】区分自定义“事件处理”功能的两种部署方式

SharePoint中的Event Handler有两种实现方式,分别是SPS2003的实现手段(需要在SharePoint 3.0 管理中心开启“向后兼容的事件处理程序”)和SPS2007的实现手段,具体的区别各位就网上搜搜吧,这里要讲的是它们的部署注意事项。

SPS2003的实现手段,一般是实现IListEventSink接口;

而SPS2007则是继承SPItemEventReceiver并重载ItemXXXed(或ItemXXXing)等函数。

在编译好dll文件并放到GAC中后(现阶段实验测试,感觉SPS2007编译的dll是一定要放到GAC中的吧,SPS2003的则可以放在站点的bin目录下),SPS2003的可以通过进入列表页—>设置—>文档库设置—>高级设置—>填写“向后兼容的事件处理程序”的 程序集名称类名称(命名空间.类名)实现自定义事件处理;

而SPS2007的方式就麻烦点,要通过编程的方式或Feature部署,可参考:编写和布置一个List Event Receivers

不过我试验了里面介绍的1.通过编程的方式布置、2.通过Feature来布置,结果都失败了,还是参考了《SharePoint 2007 教程》里的代码(编程方式部署)才成功了(代码如下)。

Code

如果出现类似于:Test中的类 “Test.DemoHandler ” 不公开 IListEventSink 接口。无法将类型为 “ Test.DemoHandler” 的对象强制转换为类型“Microsoft.SharePoint.IListEventSink”.

则说明你是采用了SPS2003的方式来部署SP2007的事件处理dll啦。

以上是一点心得,供各位朋友参考:)

PS:总算搞定了事件处理的问题,累人的事~

原文地址:https://www.cnblogs.com/glife/p/1603564.html