CreateMediaWithIdentity/CreateContentWithIdentity 没有在 Umbraco 中引发事件
CreateMediaWithIdentity/CreateContentWithIdentity without raising events in Umbraco
我正在使用 Umbraco 7 并为以下事件编写了一些自定义代码
Umbraco.Core.Services.MediaService.Saved += new Umbraco.Core.Events.TypedEventHandler<IMediaService, Umbraco.Core.Events.SaveEventArgs<IMedia>>(MediaService_Published);
Umbraco.Core.Services.ContentService.Saved += new Umbraco.Core.Events.TypedEventHandler<IContentService, Umbraco.Core.Events.SaveEventArgs<IContent>>(ContentService_Published);
对于内容,我正在生成媒体文件夹,反之亦然。
以下代码会触发另一个方法。
var newContent = contentService.CreateContentWithIdentity(mediaItem.Name, obj.Id, "SomeContentAlias");
和...
var newMedia = mediaService.CreateMediaWithIdentity(contentItem.Name, obj.Id, "SomeMediaAlias");
我以前用save方法更新过节点,有一个raised events的参数...
contentService.Save(contentItem, 0, false);
有什么方法可以创建具有标识的新媒体项目并抑制引发的事件吗?
不,这是不可能的。参见 CreateMediaWithIdentity。
当然,您也没有抑制引发事件以创建新内容(参见 CreateContentWithIdentity,您仅抑制了保存内容项的事件。您可以用完全相同的方式对媒体项执行此操作, 通过将 raiseEvents
设置为 false:
mediaService.Save(newMedia, 0, false);
我正在使用 Umbraco 7 并为以下事件编写了一些自定义代码
Umbraco.Core.Services.MediaService.Saved += new Umbraco.Core.Events.TypedEventHandler<IMediaService, Umbraco.Core.Events.SaveEventArgs<IMedia>>(MediaService_Published);
Umbraco.Core.Services.ContentService.Saved += new Umbraco.Core.Events.TypedEventHandler<IContentService, Umbraco.Core.Events.SaveEventArgs<IContent>>(ContentService_Published);
对于内容,我正在生成媒体文件夹,反之亦然。
以下代码会触发另一个方法。
var newContent = contentService.CreateContentWithIdentity(mediaItem.Name, obj.Id, "SomeContentAlias");
和...
var newMedia = mediaService.CreateMediaWithIdentity(contentItem.Name, obj.Id, "SomeMediaAlias");
我以前用save方法更新过节点,有一个raised events的参数...
contentService.Save(contentItem, 0, false);
有什么方法可以创建具有标识的新媒体项目并抑制引发的事件吗?
不,这是不可能的。参见 CreateMediaWithIdentity。
当然,您也没有抑制引发事件以创建新内容(参见 CreateContentWithIdentity,您仅抑制了保存内容项的事件。您可以用完全相同的方式对媒体项执行此操作, 通过将 raiseEvents
设置为 false:
mediaService.Save(newMedia, 0, false);