在组件上触发事件发布


2

我有一个要求,以触发组件发布事件的目标观众的邮件。我打算使用事件系统来处理此要求。但我无法找出像PublishEventArgs这样的活动。

这里是我试过的代码 -

public void Subscribe() 
    { 

     EventSystem.Subscribe<Component, PublishEventArgs>(SetOrUpdateComponent, EventPhases.Processed); 
    } 

但我的应用程序不能识别PublishEventArgs作为事件。我得到一个错误 -

类型或命名空间名称“PublishEventArgs”找不到(?是 你缺少using指令或程序集引用)

我已经包括以下组件 -

using Tridion.ContentManager; 
using Tridion.ContentManager.ContentManagement; 
using Tridion.ContentManager.CommunicationManagement; 
using Tridion.ContentManager.ContentManagement.Fields; 
using Tridion.ContentManager.Extensibility; 
using Tridion.ContentManager.Extensibility.Events; 

请提出建议,如果我错过了任何程序集。

enter image description here

+1

这有点含糊。你能否澄清你所尝试过的以及这些问题是什么?最好用你尝试过的代码。另外,你是否是动态组件,将自行发布?或者他们是否会出现在网页上?都? 30 12月. 152015-12-30 10:17:30

  0

嗨,彼得,我已经尝试了下面的方法public void Subscribe() { EventSystem.Subscribe <Component,PublishEventArgs>(SetOrUpdateComponent,EventPhases.Processed); } 但我的应用程序无法识别PublishEventArgs。 30 12月. 152015-12-30 10:20:17

+1

请编辑您的原始文章并添加这些详细信息。基本上,认为PublishEventArgs是正确的事件 - 现在是什么? 30 12月. 152015-12-30 10:22:32

+1

你的意思是“但我的应用程序无法将PublishEventArgs识别为事件。”?你有编译错误吗?它不会触发该事件吗?你有没有尝试过调试,如果是的话,你的断点会受到影响吗?您的发布商是否已超越其他机器? 30 12月. 152015-12-30 10:25:31

  0

我已经更新了我的问题中的错误细节。我收到一个编译错误 - 无法找到类型或名称空间名称'PublishEventArgs'(您是否缺少使用指令或程序集引用?) 30 12月. 152015-12-30 10:34:21

3

你可以找到外表套上2013的所有事件上link列表:

事件的更详细的解释是可能的 “支持SDL Tridion 2013 SP1 TOM.NET API.chm” 找到API来自SDL的文档。有一些有关SDL Live Content事件的文档:

有很多关于如何使用事件系统的博客,因为这是Tridion的一部分,具有良好的覆盖率。 (例如this blog解释了如何使用Tridion事件系统)

绝对使用事件OnComponentPublish(名称用于旧事件API中,您可以在上述事件矩阵文档中找到新的API)。根据您需要发送电子邮件的要求,您可以选择启动或处理两个阶段。你可能需要处理阶段...

编辑: 你可能缺少

using Tridion.ContentManager.Publishing; 
  0

感谢您的信息。我已经添加了该程序集并进行了测试。错误仍然存​​在。 30 12月. 152015-12-30 10:45:08

  0

我已经删除该dll并再次导入它,现在它工作正常。谢谢你的帮助。 30 12月. 152015-12-30 12:09:17


4

类型或命名空间名称“PublishEventArgs”找不到(是否缺少using指令或?集引用)

我已经包括以下组件 -

...

using Tridion.ContentManager.Extensibility.Events;

既然你已经使用指令已经加入了正确,错误消息的其他部分必须是真实的:你还没有加入“Tridion.ContentManager.Publishing.dll”作为您的项目的参考。请注意,使用指令程序集引用是两个非常不同的东西。

  0

嗨,彼得,我已经将ContentManager.dll添加到我的应用程序中。 30 12月. 152015-12-30 11:48:49

  0

当我使用SaveEventArgs或CheckInEventArgs时,它工作正常,但只在使用PublishEventArgs时发出问题。 30 12月. 152015-12-30 11:57:35

  0

PublishEventArgs实际上是在Tridion.ContentManager.Publishing.dll中,而SaveEventArgs和CheckInEventArgs在Tridion.ContentManager.dll中 30 12月. 152015-12-30 14:37:41