Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 获取Sitecore项目删除的完整路径_.net_Events_Sitecore - Fatal编程技术网

.net 获取Sitecore项目删除的完整路径

.net 获取Sitecore项目删除的完整路径,.net,events,sitecore,.net,Events,Sitecore,使用Sitecore 8更新2 我添加了一些配置和代码来捕获删除项目时的事件。我想获得项目的完整路径,但我只能得到[orphan]/{itemName}(其中{itemName}是itemName,但它始终包含文本字符串[orphan]) 因此,我基本上假设,当我获取事件时,该项已经被删除,并且我无法再获取路径?是否有其他方法可以在删除项目时获取该项目的路径 配置: 代码: 公共类SaveItemActions:PublishItemProcessor//多用途类,捕获保存、发布等。。 {

使用Sitecore 8更新2

我添加了一些配置和代码来捕获删除项目时的事件。我想获得项目的完整路径,但我只能得到
[orphan]/{itemName}
(其中
{itemName}
itemName
,但它始终包含文本字符串
[orphan]

因此,我基本上假设,当我获取事件时,该项已经被删除,并且我无法再获取路径?是否有其他方法可以在删除项目时获取该项目的路径

配置:


代码:

公共类SaveItemActions:PublishItemProcessor//多用途类,捕获保存、发布等。。
{
已删除的受保护的void(对象发送方、事件args args)
{
Item Item=Event.ExtractParameter(args,0)作为项;
if(isValidItem(项目))
{
插入(CreateItemAction(“已删除”,项),项);
}
}
}

您将绑定到删除项目后发生的已删除事件。您可能希望在事件模型的早期绑定(例如@Marek Musielak建议的“deleting”)以获取所需的信息


请注意,在删除事件和删除之间可能不会删除项目,因为侦听该事件的操作可能会导致删除失败。因此,请确保您只捕获了所需的数据,并且仍在收听已删除事件,以了解该项目何时实际被删除。

您将绑定到删除该项目后发生的已删除事件。您可能希望在事件模型的早期绑定(例如@Marek Musielak建议的“deleting”)以获取所需的信息


请注意,在删除事件和删除之间可能不会删除项目,因为侦听该事件的操作可能会导致删除失败。因此,请确保您只捕获了所需的数据,并且仍在收听已删除事件,以了解项目实际已被删除的时间。

将新处理程序添加到
项目:删除
事件:


和代码:

公共类ItemEventHandler
{
public void onItemDeleteing(对象发送方、事件参数)
{
如果(args!=null)
{
var item=Event.ExtractParameter(args,0)作为项;
IsNotNull(项,“参数中没有项”);
字符串路径=item.path.FullPath;
}
}
}

将新处理程序添加到
项目:删除事件:


和代码:

公共类ItemEventHandler
{
public void onItemDeleteing(对象发送方、事件参数)
{
如果(args!=null)
{
var item=Event.ExtractParameter(args,0)作为项;
IsNotNull(项,“参数中没有项”);
字符串路径=item.path.FullPath;
}
}
}

item:deleting
event?您是否尝试过
item:deleting
event?似乎我确实需要这个解决方案。但是如果我没有弄错的话,在我的自定义代码被其他处理程序运行之后,删除过程仍然可以中止吗?如果是这样的话,我还需要一种方法来捕捉这一点。编辑:我已经按照杰伊的建议把这两个组合起来了。将id和路径保存在删除事件的stati字典中,并在删除的事件中获取。您还可以将其保存到Sitecore.Context.Items,它仅在请求/事件管道执行期间处于活动状态。似乎我确实需要此解决方案。但是如果我没有弄错的话,在我的自定义代码被其他处理程序运行之后,删除过程仍然可以中止吗?如果是这样的话,我还需要一种方法来捕捉这一点。编辑:我已经按照杰伊的建议把这两个组合起来了。将id和路径保存在删除事件的stati字典中,并在删除的事件中获取它。您还可以将其保存到Sitecore.Context.Items,它仅在请求/事件管道执行期间处于活动状态。