/// <summary>
        /// This method replaces the channel with the command default if the value specified in the attribute is null.
        /// </summary>
        /// <param name="attr">The incoming attribute whose header channel should be checked.</param>
        /// <returns>Returns a message filter wrapper for the header.</returns>
        protected MessageFilterWrapper CommandChannelAdjust(CommandContractAttribute attr)
        {
            ServiceMessageHeader header = attr.Header;

            if (header.ChannelId == null)
            {
                header = new ServiceMessageHeader(ChannelId, header.MessageType, header.ActionType);
            }

            return(new MessageFilterWrapper(header));
        }
 /// <summary>
 /// This is the command reference.
 /// </summary>
 /// <param name="attr">The contract attribute.</param>
 /// <returns>The reference id.</returns>
 public string Reference(CommandContractAttribute attr)
 {
     return($"{Method.Name}/{attr.Header.ToKey()}");
 }