Wir versuchen, den EventSubscripton in unserem Evening Code abzubestellen. Wir verwenden den folgenden CodeSDL Tridion EventSubscription Unsubscribe Problem
[TcmExtension("EventHandlerExtension")]
public class EventHandler : TcmExtension, IDisposable
{
private EventSubscription componentSaveSubscription = null;
private EventSubscription componentPublishSubscription = null;
#region Public Methods
/// <summary>
/// Handle for Eventing System
/// </summary>
public EventHandler()
{
Subscribe();
}
/// <summary>
/// Subscribe Events
/// </summary>
public void Subscribe()
{
//News Article Page created when component Save
componentSaveSubscription = EventSystem.Subscribe<Component, SaveEventArgs>(OnComponentSavePost, EventPhases.TransactionCommitted);
//EventSystem.Subscribe<Component, SaveEventArgs>(OnComponentSavePost, EventPhases.TransactionCommitted);
componentPublishSubscription = EventSystem.Subscribe<Component, PublishOrUnPublishEventArgs>(OnComponentPublishOrUnPublishPost, EventPhases.TransactionCommitted);
//EventSystem.Subscribe<StructureGroup, PublishOrUnPublishEventArgs>(OnStructureGroupPublishInitiated, EventPhases.TransactionCommitted);
}
/// <summary>
/// IDisposable Implementation
/// </summary>
public void Dispose()
{
if (componentSaveSubscription != null) componentSaveSubscription.Unsubscribe();
if (componentPublishSubscription != null) componentPublishSubscription.Unsubscribe();
}}
Was wir beobachtet haben, ist, dass wenn „{} EventSubsciption .Unsubscribe“ genannt wird, Vielseitigkeits Anschläge für die nachfolgenden Ereignisse arbeiten, für die sie arbeiten soll. Sobald die ereignissystembezogenen Dienste neu gestartet werden, funktioniert der Ereigniscode nur wie erwartet und wird nie für nachfolgende Ereignisse (für die er funktionieren sollte) aufgerufen.
Wenn Ihr Objekt des 'Dispose()' Methode aufgerufen wird? Soweit ich weiß, sollte dies nur passieren, wenn das Modul, in dem der Handler läuft, heruntergefahren wird (und möglicherweise nicht einmal dann). –
Und wenn Sie nicht Dispose() funktioniert es wie erwartet? Dann aufhören zu entsorgen? –