演练:添加功能事件接收器
功能事件接收器是在 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”功能旁边的“停用”按钮,然后选择“停用此功能”确认链接来停用该功能 。
选择“主页”按钮。
请注意,停用功能后,“公告”列表中会出现公告。