public static MessageRouteRule Create <TMessage>(string name, bool includeSubMessageTypes, Type messageHandler, IMessageConditionValidator <TMessage> conditionValidator)
            where TMessage : class, IMessage
        {
            var route = new MessageRouteRule(name, typeof(TMessage), includeSubMessageTypes, messageHandler,
                                             null, null, conditionValidator);

            return(route);
        }
        public static MessageRouteRule Create <TMessageHandler, TMessage>(string name, bool includeSubMessageTypes, Type handlerType, IMessageConditionValidator <TMessage> preConditionValidator, IMessageTransformer <TMessage, IMessage> transformer, IMessageConditionValidator <TMessageHandler, TMessage> postConditionValidator)
            where TMessageHandler : class, IMessageHandler <TMessage>
            where TMessage : class, IMessage
        {
            var route = new MessageRouteRule(name, typeof(TMessage), includeSubMessageTypes, handlerType, preConditionValidator, transformer, postConditionValidator);

            return(route);
        }
        public static MessageRouteRule Create <TMessage, TMessageHandler>(string name, bool includeSubMessageTypes)
            where TMessage : class, IMessage
            where TMessageHandler : class, IMessageHandler <TMessage>
        {
            var route = new MessageRouteRule(name, typeof(TMessage), includeSubMessageTypes, typeof(TMessageHandler),
                                             null, null, null);

            return(route);
        }