為了更清晰地讓朋友們了解實作通用Event Handler的幾個步驟,本篇文章将被分割成兩個小的部分,第一部分講解完成準備工作,第二部分講解嘗試Event Handler。是以而給大家帶來的閱讀不便,就請海涵了:)
下面将記錄每一步的操作過程。
1、首先打開打開Microsoft Visual Studio 2005,建立一個名為Eallies.EventHandler.SP2007的Class Library。
2、建立完成後,将預設的Class1.cs改名為ListHandler.cs。
3、為項目添加Microsoft.SharePoint.dll的引用。
4、将項目的輸出目錄更改為C:\Inetpub\wwwroot\wss\VirtualDirectories\9001\_app_bin。
5、為項目建立強名稱。
6、更改ListHandler.cs為如下的代碼:
1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4
5 using Microsoft.SharePoint;
6
7 namespace Eallies.EventHandler.SP2007
8 {
9 public class ListHandler : SPItemEventReceiver
10 {
11 public override void ItemDeleting(SPItemEventProperties properties)
12 {
13 properties.Cancel = true;
14 properties.ErrorMessage = "You have no access to delete it.";
15 }
16 }
17 }
7、向解決方案中添加一個名為Eallies.EventHandler.Register的Console Application項目。
8、為Eallies.EventHandler.Register項目添加Microsoft.SharePoint.dll的引用。
9、使用Reflector找到Eallies.EventHandler.SP2007項目的Assembly資訊。
10、将Eallies.EventHandler.Register項目中的Program.cs更改為如下的代碼:
7 namespace Eallies.EventHandler.Register
9 class Program
11 static void Main(string[] args)
13 SPSite site = new SPSite("http://denny-zhang:9001/sites/Wodeweb");
14 SPWeb web = site.OpenWeb("Docs");
15 SPList list = web.Lists["Announcements"];
16
17 list.EventReceivers.Add(SPEventReceiverType.ItemDeleting, "Eallies.EventHandler.SP2007, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c7f921ec4a7dede8", "Eallies.EventHandler.SP2007.ListHandler");
18 }
19 }
20 }
11、編譯Eallies.EventHandler.SP2007項目,并将編譯後的DLL加入到作業系統的GAC中。
12、運作Eallies.EventHandler.Register項目。
至此,實作通用Event Handler的準備工作就完成了。
本文轉自 Eallies 51CTO部落格,原文連結:http://blog.51cto.com/eallies/78810,如需轉載請自行聯系原作者