sharepoint事件处理器EventHandler注册
2012-04-24 15:01 李帅营 阅读(255) 评论(0) 编辑 收藏 举报sharepoint中事件接收器的注册可以用feature进行注册,也可以使用代码进行注册;
代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.SharePoint; using TopWin.DongFengYL.JasonP.EventReceivers;//添加事件处理器所在程序集的引用 namespace ConsoleRegisterReceiver { class Program { static void Main(string[] args) { using (SPSite site = new SPSite("http://192.168.9.211/sites/DocCenter"))//网站集地址 { using (SPWeb web = site.OpenWeb()) { string[] listNames = { "公司规章制度", "公用单据", "本部门资料", "资料共享区", "经验资料" };//要进行注册的列表或者文档库名称 foreach (string name in listNames) { Bind(web, name); } } } Console.WriteLine("绑定完毕"); Console.Read(); } private static void Bind(SPWeb web, string listName) { Type receiverType = typeof(DocLibEventReceiver);//DocLibEventReceiver为定义事件处理器的类 SPList list = web.Lists[listName]; SPEventReceiverDefinitionCollection receivers = list.EventReceivers; foreach (SPEventReceiverDefinition def in receivers) { if (def.Assembly == receiverType.Assembly.FullName) { def.Delete(); break; } } SPEventReceiverDefinition receiver = receivers.Add(); receiver.Assembly = receiverType.Assembly.FullName; receiver.Class = "TopWin.DongFengYL.JasonP.EventReceivers.DocLibEventReceiver";//此处要用事件处理器的程序集名+所在的类名 receiver.Type = SPEventReceiverType.ItemAdding; receiver.SequenceNumber = 10001; receiver.Update(); } } }
备注:1、注册前首先把事件处理器所在的程序集注册到gac中,即:C:\Windows\assembly中,
2、事件处理器所在的程序集要强签名
3、添加引用的程序集版本要和放到gac中的版本相同