WSS3SDK之:Feature事件

来源:互联网 发布:串烧制作软件 编辑:程序博客网 时间:2024/06/06 04:26

Windows SharePoint Services 3.0提供了Featue事件相关的类库,可以允许您捕获和相应Feature安装到服务器场,添加到新的虚拟服务器或卸载等事件。

其中一些事件是 post 事件,也就是说在相应行为已经被提交或Feature定义已经在场的Feature集合中被创建后才触发。

通过Feature事件不可能取消一个安装或卸载操作。

Feature 事件类

  • Microsoft.SharePoint.SPFeatureReceiver 基础抽象类可以被覆写来捕获Feature的激活,关闭,安装,或卸载操作。命名空间:Microsoft.SharePoint

  • Microsoft.SharePoint.SPFeatureReceiverProperties 类提供对事件属性的访问,比如已创建的Feature实例,Feature的定义,或Feature的父对象(比如,一个 Microsoft.SharePoint.SPWeb 对象)。 命名空间:Microsoft.SharePoint

Feature 提供的事件

Feature provisioning callouts 允许您编写特定的代码来响应各种在Feature整个生命周期内的事件。 SPFeatureReceiver 类提供了下列方法来处理事件:

  • FeatureInstalled

  • FeatureUninstalling

  • FeatureActivated

  • FeatureDeactivating

通过创建一个继承自 SPFeatureReceiver 的类并实现这些方法就可以为Feature提供相应事件的处理。

您总是传递到父对象(比如一个父SPWeb)的指针,因此您可根据需要进行定制。

包含Feature接收器的DLL组件必须放在GAC里。在 Feature.xml 文件里,您可以通过 ReceiverAssemblyReceiverClass 属性在Feature元素的顶层注册该接收器。比如:

<Feature Id="5E88AE4E-2ECB-4CC5-B9EC-9019250F5BC8"
Title
="Knowledge Base Infrastructure"
Scope
="Site"
ReceiverAssembly
="MS.Samples.SharePoint.KnowledgeBase, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d24e3c1752ded9ed"
ReceiverClass
="MS.Samples.SharePoint.KnowledgeBase.KnowledgeBaseInstaller"
xmlns
="http://schemas.microsoft.com/sharepoint/">

在激活过程中的任何异常的抛出都将传达给用户,并且该Feature不会被标记为已激活。

编写代码常常用来处理当用户试图强制激活一个已激活的Feature的情况。比如,如果您的Feature在调用时会创建一个列表,您的代码就要确保如果列表已存在时激活操作不会出错。

原创粉丝点击