हम अपने इवेंटिंग कोड में घटना सदस्यता से सदस्यता छोड़ने की कोशिश कर रहे हैं। हम निम्नलिखित कोडएसडीएल ट्रिडियन इवेंटस्क्रिप्शन अनसब्सक्राइब समस्या
[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();
}}
क्या हमने देखा है कि एक बार "{} EventSubsciption .Unsubscribe" कहा जाता है का उपयोग कर रहे हैं, इवेंट बाद की घटनाओं जिसके लिए यह काम करने के लिए माना जाता है के लिए काम बंद हो जाता है। एक बार ईवेंट सिस्टम से संबंधित सेवाओं को पुनरारंभ करने के बाद, इवेंटिंग कोड केवल पहली बार अपेक्षित काम करता है और बाद की घटनाओं के लिए कभी भी कॉल नहीं किया जाता है (जिसके लिए इसे काम करना था)।
जब आपके वस्तु की 'निपटान()' विधि शुरू हो जाती है है:
मेरे बॉयलरप्लेट हैंडलर इस तरह दिखता है? जहां तक मुझे पता है यह केवल तभी होना चाहिए जब हैंडलर जो मॉड्यूल चलाता है वह बंद हो जाता है (और संभावित रूप से तब भी नहीं)। –
और यदि आप निपटान नहीं करते हैं() यह अपेक्षा के अनुसार काम करता है? फिर निपटान करना बंद करो? –