WSS3SDK之:如何创建一个事件处理程序Feature
本例将展示如何添加一个简单的事件处理器来阻止从某列表中删除列表项。这个任务包括两个步骤:
- 在Visual Studio中创建事件处理程序
- 将事件处理程序作为Feature添加到WSS中
在Vistual Studio中创建一个事件处理程序
- 在Visual Studio中通过点击文件->新建->项目来新建一个项目
-
在新建项目对话框中,选择项目类型为 Visual C# ,模板选择类库 , 名称框中输入 DeletingEventHandler ,然后点击确定。
-
在解决方案管理器中,选择 DeletingEventHandler, 在项目菜单中点击添加引用。
- 在添加引用对话框中,选择Microsoft.SharePoint (位于 .NET 标签中)并点击确定。
- 在代码编辑器中,引用Microsoft.SharePoint 命名空间,如下所示:
using Microsoft.SharePoint; - 改变类名为DeletingAction 并使其继承自SPItemEventReceiver类,如下所示:
public class DeletingAction : SPItemEventReceiver -
用下列代码覆写该类的ItemDeleting方法。
public override void ItemDeleting(SPItemEventProperties properties)
{
properties.Cancel = true;
properties.ErrorMessage = "Deleting items from " + properties.RelativeWebUrl + " is not supported.";
} -
在解决方案管理器中,右击 DeletingEventHandler 结点,点属性。
-
在属性对话框中,点击签名标签,选择签名该组件,点击选择一个强命名密钥文件,然后点击 <新建…>.
-
在创建强命名密钥对话框中,输入 DeletingEventHandler.snk 作为密钥文件名,您也可以给密钥指定一个密码,点击确定。
-
通过快捷键CTRL+SHIFT+B编译该项目。
-
在 Visual Studio项目文件夹下找到
\DeletingEventHandler\bin\Debug
文件夹,将 DeletingEventHandler.dll 文件拖放到Local_Drive:\WINDOWS\assembly
来进行DLL的全局部署。
将事件处理器作为Feature来添加
-
在 Local_Drive
:/Program Files/Common Files/Microsoft Shared/web server extensions/12/TEMPLATE/FEATURES
下创建一个文件夹,名为 DeletingEventHandler。 - 在该文件夹下新建一个Feature.xml 文件来标识该Feature,内容如下。该Featuer的范围是网站。
<Feature Scope="Web"
Title="Deleting Event Handler"
Id="GUID"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="Elements.xml"/>
</ElementManifests>
</Feature> -
替换上一步中的GUID 占位符。可以通过guidgen.exe 生成一个新的GUID。该命令行工具位于Local_Drive
:\Program Files\Microsoft Visual Studio 8
。 - 在DeletingEventHandler文件夹中创建一个元素文件Elements.xml file 来标识事件处理程序的组件,类,以及方法。本例将事件处理程序应用到网站中的所有通知列表上。
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Receivers ListTemplateId="104">
<Receiver>
<Name>DeletingEventHandler</Name>
<Type>ItemDeleting</Type>
<SequenceNumber>10000</SequenceNumber>
<Assembly>
DeletingEventHandler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a26b5449ac4a4cf3</Assembly>
<Class>DeletingEventHandler.DeletingAction</Class>
<Data></Data>
<Filter></Filter>
</Receiver>
</Receivers>
</Elements> -
您可以通过如下方法获取组件的 Public Key Token 。在Windows资源管理器中找到Local_Drive
:\WINDOWS\assembly下的
DeletingEventHandler.dll 文件,右击该文件,点属性,在属性对话框的一般标签中,选择并拷贝token。 -
在命令行中,输入下列命令来安装和激活Feature,然后重启IIS( Microsoft Internet Information Services)使变更生效。
stsadm -o installfeature -filename DeletingEventHandler\feature.xml
stsadm -o activatefeature -filename DeletingEventHandler \feature.xml -url http://Server/Site/Subsite
iisreset
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!