/// <summary>
        /// Checks the specified <paramref name="configuration"/> for omissions, errors, or
        /// inconsistencies.
        /// </summary>
        /// <param name="configuration">The configuration to validate</param>
        public static void Validate(this IPlatibusConfiguration configuration)
        {
            if (configuration == null)
            {
                return;
            }

            if (configuration.MessageNamingService == null)
            {
                throw new ConfigurationErrorsException("Message naming service is required");
            }

            if (configuration.SerializationService == null)
            {
                throw new ConfigurationErrorsException("Serialization service is required");
            }

            configuration.ValidateSendRules();
            configuration.ValidateSubscriptions();
        }