编写和布置一个List Event Receivers(下)
前文说到已经将类写好并放到GAC里面了,本文将接着介绍如何布置List Event Receivers.
布置List Event Receivers有三种方法,分别是:
1. 通过编程的方式布置
2. 通过Feature来布置
3. 通过Content Types来布置
一、 通过编程的方式来布置(假设站点下有一个List叫MyList):
建立一个控制台应用程序,添加对Microsfot.SharePoint.dll的引用,然后添加代码如下:
static void Main(string[] args)
{
string siteUrl = "Http://你的站点地址";
SPSite site = new SPSite(siteUrl);
SPWeb web = site.AllWebs[0];
SPList list = web.Lists["MyList"];//MyList是站点下的一个List名称。
SPEventReceiverDefinition newReceiver = list.EventReceivers.Add();
newReceiver.Class = "EventLogger.ListEventLogger";//此处是上面所写Event Receivers的命名空间及类名
newReceiver.Assembly = "Feature, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ef3c06797f59570f";//此处可以用Reflector.exe查看。
newReceiver.SequenceNumber = 5000;
newReceiver.Type = SPEventReceiverType.ItemUpdated;
newReceiver.Update();
}
其实这些代码都是最基本的代码,也不需要太多解释。
这样就可以通过程序的方法,将List Event Receivers发布到MyList这个List中。
将修改MyList中的某一项时,就生成了一条日志记录。
二、 通过Feature来布置。
Feature一般是放在C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES下面的,每一个Feature都有自己单独的文件夹(本例子中叫做LogFeature),文件夹下面一般有2个文件: Feature.xml和Element.xml(这个文件的名字可以自己定义).
Feature.xml的结构如下:
<Feature Id="D250636F-0A26-4019-8435-A5232D592C08"
Title="Event Logger"
Description="Add log to a text file."
Scope="Site"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="Element.xml" />
</ElementManifests>
</Feature>
Element.xml的结构如下:
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<CustomAction
Id="ReportListEventLogger"
Location="Feature"
GroupId="SiteActions"
Title="Add event logger"
ControlAssembly="Feature, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ef3c06797f59570f"
ControlClass="EventLogger.ListEventLogger">
</CustomAction>
</Elements>
当在Features文件夹下有Feature.xml和Element.xml之后,你就可以用Stsadm命令行来安装Feature了,具体命令如下:
Stsadm.exe –o installfeature –filename LogFeature\feature.xml
这样就安装完成了,可以在页面中或再用命令行来激活.
三.通过Content Type来布置:此种方法没有学会,还望高人指点.