sitecore事件处理程序所在的位置

Use*_*ser 1 sitecore sitecore6

我在哪里可以看到sitecore预定义事件处理程序的源代码(例如项目删除事件处理程序,OnPublishEnd和其他).我想改变它们.

小智 6

例如,当您从Sitecore界面删除项目时,您有下一个事件:

 <event name="item:deleted">
    <handler type="Sitecore.Links.ItemEventHandler, Sitecore.Kernel" method="OnItemDeleted" />
    <handler type="Sitecore.Tasks.ItemEventHandler, Sitecore.Kernel" method="OnItemDeleted" />
    <handler type="Sitecore.Globalization.ItemEventHandler, Sitecore.Kernel" method="OnItemDeleted" />
    <handler type="Sitecore.Data.Fields.ItemEventHandler, Sitecore.Kernel" method="OnItemDeleted" />
    <handler type="Sitecore.Rules.ItemEventHandler, Sitecore.Kernel" method="OnItemDeleted" />
  </event>
Run Code Online (Sandbox Code Playgroud)

您可以使用Reflector或Dot Peek反编译Sitecore.Kernel.dll并深入查看代码.

对于"publish:end",您有下一个代码

 <event name="publish:end">
    <handler type="Sitecore.Publishing.HtmlCacheClearer, Sitecore.Kernel" method="ClearCache>
      <sites hint="list">
        <site>website</site>
      </sites>
    </handler>
  </event>
Run Code Online (Sandbox Code Playgroud)

此行显示在web.config文件中.我建议你使用补丁,为自定义事件创建新的配置文件.本文是如何使用配置文件的一个良好开端.

如果您在事件"item:deleted"下为配置文件创建了一个类和方法以删除项目,那么您将拥有:

<handler type="YourNamespace.YourClassName, YourAssembly" method="YourMethodName" /> 
Run Code Online (Sandbox Code Playgroud)

有关使用事件的信息以及如何在此处找到.