public override void Open()
        {
            base.Open();

            if (m_SubscriptionProxy == null)
            {
                m_SubscriptionProxy = DuplexChannelFactory <IAnnouncementsSubscription, IAnnouncements> .CreateChannel(this, DiscoveryFactory.Binding, DiscoveryFactory.Address.AnnouncementsSubscription);

                m_SubscriptionProxy.Subscribe();
            }
        }
        public override void Close()
        {
            if ((m_SubscriptionProxy as ICommunicationObject).State == CommunicationState.Opened)
            {
                try
                {
                    m_SubscriptionProxy.Unsubscribe();
                    (m_SubscriptionProxy as ICommunicationObject).Close();
                }
                catch
                {}
                finally
                {
                    m_SubscriptionProxy = null;
                }
            }

            base.Close();
        }