我需要在存在特定条件时停止发布页面,例如,如果页面名称包含使用事件系统的"一个".此外,其他页面应继续发布.
我想使用PublisherException而不是一般的异常.
问题是我不知道LocalizableMessage的resourceName.有任何想法吗?
if (item.Title.ToString().Contains("one"))
{
Localization.LocalizableMessage errResource = new Localization.LocalizableMessage("error");
throw new PublisherException(errResource, new Exception("Can't get there from here!"));
}
Run Code Online (Sandbox Code Playgroud)
事件系统可以停止发布,但是没有中间地带,当你抛出异常时,它会停止整个事务.
就像Puntero提到的那样,如果你想从一个Publish Transaction中删除一个项目,那就是自定义解析器进来的地方.从这里你无法与发布事务进行通信,但你可以访问Tridion Logger(事件日志):
Tridion.Logging.Logger.Write("your message string", "MyResolver", LoggingCategory.General, TraceEventType.Information);
Run Code Online (Sandbox Code Playgroud)
关于Event System中的LocalizableMessage,您应该能够执行以下操作:
throw new PublisherException(new LocalizableMessage(Properties.Resources.ResourceManager, "PagePublishErrorMessage"));
Run Code Online (Sandbox Code Playgroud)
其中resourceName指向您在Project中具有的String资源的名称.
归档时间: |
|
查看次数: |
152 次 |
最近记录: |