/// <summary>
        /// 
        /// </summary>
        /// <param name="name">The name of this client module.</param>
        /// <param name="singleThreadOnly">Should the module be entered with single or multiple Arbiter threads.</param>
        public ArbiterClientBase(bool singleThreadOnly)
        {
            string name = UserFriendlyNameAttribute.GetTypeAttributeName(this.GetType());

            // Make sure not to use the default struct parameterless constructor.
            _subscriptionClientId = new ArbiterClientId(name, this.GetType(), this);

            _messageFilter = new MessageFilter(true);
            _singleThreadOnly = singleThreadOnly;
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="name">The name of this client module.</param>
        /// <param name="singleThreadOnly">Should the module be entered with single or multiple Arbiter threads.</param>
        public ArbiterClientBase(string idName, bool singleThreadOnly)
        {
            if (string.IsNullOrEmpty(idName))
            {// Try to establish user friendly name, or if not available, use class name.
                idName = UserFriendlyNameAttribute.GetTypeAttributeName(this.GetType());
            }

            _subscriptionClientId = new ArbiterClientId(idName, this.GetType(), this);
            _messageFilter = new MessageFilter(true);
            _singleThreadOnly = singleThreadOnly;
        }
 /// <summary>
 /// Deserialization constructor.
 /// </summary>
 /// <param name="singleThreadOnly"></param>
 public ArbiterClientBase(SerializationInfo info, StreamingContext context)
 {
     _subscriptionClientId = (ArbiterClientId)info.GetValue("clientId", typeof(ArbiterClientId));
     _messageFilter        = (MessageFilter)info.GetValue("messageFilter", typeof(MessageFilter));
 }
 /// <summary>
 /// Deserialization constructor.
 /// </summary>
 /// <param name="singleThreadOnly"></param>
 public ArbiterClientBase(SerializationInfo info, StreamingContext context)
 {
     _subscriptionClientId = (ArbiterClientId)info.GetValue("clientId", typeof(ArbiterClientId));
     _messageFilter = (MessageFilter)info.GetValue("messageFilter", typeof(MessageFilter));
 }