逐步解說:新增功能事件接收器
功能事件接收器是在 SharePoint 中發生下列其中一個功能相關事件時所執行的方法:
已安裝功能。
已啟動功能。
已停用功能。
已移除功能。
本逐步解說示範如何將事件接收器新增至 SharePoint 專案中的功能。 其示範下列工作:
使用功能事件接收器建立空白專案。
處理 FeatureDeactivating 方法。
使用 SharePoint 專案物件模型,將公告新增至公告清單。
注意
在下列指示的某些 Visual Studio 使用者介面項目中,您的電腦可能會顯示不同的名稱或位置: 您所擁有的 Visual Studio 版本以及使用的設定會決定這些項目。 如需詳細資訊,請參閱將 IDE 個人化。
必要條件
您需要下列元件才能完成這個逐步解說:
支援的 Microsoft Windows 和 SharePoint 版本。
Visual Studio。
建立功能事件接收者專案
首先,建立專案以包含功能事件接收器。
若要使用功能事件接收器建立專案
在功能表列上,選擇 [檔案]>[新增]>[專案],以顯示 [新增專案] 對話方塊。
展開 [Visual C#] 或 [Visual Basic] 底下的 [SharePoint] 節點,然後選擇 [2010] 節點。
在 [範本] 窗格中,選擇 [SharePoint 2010 專案] 範本。
因為功能事件接收器沒有專案範本,所以您可以針對功能事件接收器使用這個專案類型。
在 [名稱] 方塊中,輸入 FeatureEvtTest,然後選擇 [確定] 按鈕以顯示 [SharePoint 自訂精靈]。
在 [指定網站和安全性層級進行偵錯] 頁面上,輸入您要新增自訂欄位項目的 SharePoint 伺服器網站 URL,或使用預設位置 (http://<system name>/)。
在 [此 SharePoint 解決方案的信任層級為何?] 區段中,選擇 [部署為陣列方案] 選項按鈕。
如需有關沙箱化方案和伺服器陣列方案的詳細資訊,請參閱沙箱化解決方案考量。
選擇 [完成] 按鈕,然後注意到名為 Feature1 的功能會出現在 [功能] 節點底下。
將事件接收器新增至功能
接下來,將事件接收器新增至功能,並在停用功能時,新增執行的程式碼。
將事件接收器新增至功能
開啟 [功能] 節點的捷徑功能表,然後選擇 [新增功能] 來建立功能。
在 [功能] 節點下,開啟 Feature1 的快捷方式功能表,然後選擇 [新增事件接收器] 將事件接收器新增至功能。
這會在 Feature1 底下新增程式碼檔案。 在此情況下,其會根據專案的開發語言,命名為 Feature1.EventReceiver.cs 或 Feature1.EventReceiver.vb。
如果您的專案是以 Visual C# 撰寫的,請在事件接收器頂端新增下列程式碼 (如果尚未存在):
using System;
事件接收者類別包含數個做為事件的註解化方法。 將 FeatureDeactivating 方法取代為以下內容:
public override void FeatureDeactivating(SPFeatureReceiverProperties properties) { try { // Get reference to SharePoint site. SPSite site = new SPSite("http://localhost"); SPWeb web = site.OpenWeb("/"); // Get reference to Announcements list. SPList announcementsList = web.Lists["Announcements"]; // Add new announcement to Announcements list. SPListItem oListItem = announcementsList.Items.Add(); oListItem["Title"] = "Deactivated Feature: " + properties.Definition.DisplayName; oListItem["Body"] = properties.Definition.DisplayName + " was deactivated on: " + DateTime.Now.ToString(); oListItem.Update(); } catch (Exception e) { Console.WriteLine("Error: " + e.ToString()); } }
測試功能事件接收器
接下來,停用功能以測試 FeatureDeactivating 方法是否將公告輸出至 SharePoint 公告清單。
若要測試功能事件接收器
將專案的 [現用部署組態] 屬性的值設定為 [無啟用]。
設定此屬性可防止功能在 SharePoint 中啟用,並可讓您偵錯功能事件接收器。 如需詳細資訊,請參閱部署 SharePoint 解決方案 (部分機器翻譯)。
選擇 F5 鍵以執行專案,並將其部署至 SharePoint。
在 SharePoint 網頁頂端,開啟 [網站動作] 功能表,然後選擇 [網站設定]。
在 [網站設定] 頁面的 [網站動作] 區段下,選擇 [管理網站功能] 連結。
在 [功能] 頁面上,選擇 FeatureEvtTest Feature1 功能旁的 [啟用] 按鈕。
在 [功能] 頁面上,選擇 FeatureEvtTest Feature1 功能旁的 [停用] 按鈕,然後選擇 [停用此功能] 確認連結以停用功能。
選擇 [首頁] 按鈕。
請注意,停用功能之後,公告會出現在 [公告] 清單中。