public override void Unregister(object registrationId,
                                        TimeSpan timeout)
        {
            if (timeout <= TimeSpan.Zero)
            {
                throw new ArgumentException(String.Format("Timeout value must be positive value. It was {0}", timeout));
            }

            client.OperationTimeout = timeout;
            preserved_mesh_id       = null;
            client.Unregister(new UnregisterInfo(preserved_mesh_id, (Guid)registrationId));
        }
        public virtual void Unregister(UnregisterInfo unregisterInfo)
        {
            if (unregisterInfo == null)
            {
                throw new ArgumentException("Unregister info cannot be null.");
            }

            if (!opened)
            {
                throw new InvalidOperationException("The service has never been opened or it was closed previously.");
            }

            client.Unregister(unregisterInfo);
        }