2008年3月11日 星期二

Moss事件處理器(1)-如何建立部署

1. 首先,新增一個類別函式庫專案,選擇好語言之後,將專案名稱命名為:MOSSEventHandlers。

2. 在MOSSEventHandlers專案中將Microsoft.SharePoint.dll加入參考,並且Using Microsoft.SharePoint命名空間。
Add SharePoint

3. 在專案中新增一個類別名為CustomEventHandlers,並讓這個類別繼承自SPItemEventReceiver,這裡亞當斯選擇的是繼承SPItemEventReceiver這個Receiver類別,事實上MOSS中有很多可以繼承下來改寫的Receiver,各位有興趣的話,可以使用物件瀏覽器查詢「Receiver」。

4. 改寫每一個開發者想要註冊到MOSS網站上所要監控的事件,下列有監控項目的新增、刪除、修改等事件,程式碼參考如下:

public override void ItemAdding(SPItemEventProperties properties)
{
WriteLog("ItemAdding......");
}
public override void ItemUpdating(SPItemEventProperties properties)
{
WriteLog("ItemUpdating......");
}
public override void ItemDeleting(SPItemEventProperties properties)
{
WriteLog("ItemDeleting......");
//讓執行的項目失效,中斷此事件
properties.Cancel = true;
properties.ErrorMessage = "這個項目" + properties.ListTitle + "很重要,不得刪除";
}

5. 準備一個紀錄LOG的方法來記錄事件觸發的資訊,如:寫入資訊到事件檢視器(Event Log),這段程式碼的目的主要用來驗證確實事件是有被觸發的。紀錄LOG的程式碼請參考如下:

protected void WriteLog(string Message)
{
EventLog log = new EventLog("Application");
if( !EventLog.SourceExists("Demo Logger"))
{
EventLog.CreateEventSource("Demo Logger", "Application");
}
log.Source = "Demo Logger";
log.WriteEntry(Message);
}

6. 撰寫完畢後在MOSSEventHandlers專案按右鍵,選擇屬性,在「簽署」的頁簽中勾選「簽署組件」。

7. 在「選擇強式名稱金鑰檔」的地方選擇<新增…>,填入金鑰名稱,並且把密碼保護取消。亞當斯將金鑰的名稱命名為:CustomEventHandlers.snk。
Add Key

8. 設定完畢後,建置MOSSEventHandlers專案,產生MOSSEventHandlers.dll組件。

9. 打開VS2005的命令模式視窗,打入以下指令將MOSSEventHandlers.dll組件註冊到GAC中:

Gacutil –I MOSSEventHandlers.dll

10. 打開檔案總管,路徑指到C:\WINDOWS\assembly下,可以找到一個MOSSEventHandlers.dll表示已經成功註冊事件處理器組件。
View GAC

沒有留言: