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);