/// <summary>
        /// Destroys the publication.
        /// </summary>
        /// <typeparam name="TEventArgs">The type of the event arguments.</typeparam>
        /// <param name="publication">The publication.</param>
        /// <param name="publishedEvent">The published event.</param>
        public virtual void DestroyPublication <TEventArgs>(IPublication publication, ref EventHandler <TEventArgs> publishedEvent) where TEventArgs : EventArgs
        {
            CodePublication <TEventArgs> codePublication = publication as CodePublication <TEventArgs>;

            if (codePublication != null)
            {
                codePublication.Unregister(ref publishedEvent);
            }
        }
        /// <summary>
        /// Destroys the publication.
        /// </summary>
        /// <param name="publication">The publication.</param>
        /// <param name="publishedEvent">The published event.</param>
        public virtual void DestroyPublication(IPublication publication, ref EventHandler publishedEvent)
        {
            CodePublication <EventArgs> codePublication = publication as CodePublication <EventArgs>;

            if (codePublication != null)
            {
                codePublication.Unregister(ref publishedEvent);
            }
        }