/// <summary>
 /// Initializes a new instance of the <see cref="MemberInfo"/> class.
 /// </summary>
 /// <param name="id">The unique identifier of the member.</param>
 /// <param name="address">The network address of the member.</param>
 /// <param name="version">The version of the server running the member.</param>
 /// <param name="isLiteMember">Whether the member is a "lite" member.</param>
 /// <param name="attributes">Attributes of the member.</param>
 public MemberInfo(Guid id, NetworkAddress address, MemberVersion version, bool isLiteMember, IDictionary <string, string> attributes)
 {
     Id           = id;
     Address      = address;
     Version      = version;
     IsLiteMember = isLiteMember;
     Attributes   = new ReadOnlyDictionary <string, string>(attributes);
     AddressMap   = new Dictionary <EndpointQualifier, NetworkAddress>();
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="MemberInfo"/> class.
        /// </summary>
        /// <param name="id">The unique identifier of the member.</param>
        /// <param name="address">The network address of the member.</param>
        /// <param name="version">The version of the server running the member.</param>
        /// <param name="isLiteMember">Whether the member is a "lite" member.</param>
        /// <param name="attributes">Attributes of the member.</param>
        /// <param name="addressMapExists">Whether the address map exists.</param>
        /// <param name="addressMap">The address map.</param>
        /// <remarks>
        /// <para>That overload of the constructor is required by generated codecs.</para>
        /// </remarks>
        internal MemberInfo(NetworkAddress address, Guid id, IDictionary <string, string> attributes, bool isLiteMember, MemberVersion version, bool addressMapExists, IDictionary <EndpointQualifier, NetworkAddress> addressMap)
            : this(id, address, version, isLiteMember, attributes)
        {
            // yes, this constructor could be simplified, but at the moment
            // it is what codecs expect, so don't simplify it!

            if (addressMapExists)
            {
                AddressMap = addressMap;
            }
        }