private ICommandHandler <TCommand, TCommandResult> GetSynchronousCommandHandler <TCommand, TCommandResult>() where TCommand : ICommand <TCommandResult> where TCommandResult : CommandResult
        {
            var handlerType = _commandHandlerFinder.FindHandlerForCommand <TCommand, TCommandResult>();

            if (handlerType == null)
            {
                return(null);
            }
            return((ICommandHandler <TCommand, TCommandResult>)_serviceProvider.GetService(handlerType));
        }
Esempio n. 2
0
        public ICommandHandler <TCommand> GetCommandHandler <TCommand>()
        {
            var commandTypeFullName = typeof(TCommand).FullName;

            var handler = _cache.GetValue <ICommandHandler <TCommand> >(commandTypeFullName, null);

            if (handler == null)
            {
                handler = _commandHandlerFinder.FindHandlerForCommand <TCommand>();
                if (handler != null)
                {
                    _cache.SetValue <ICommandHandler <TCommand> >(commandTypeFullName, handler);
                }
            }

            return(handler);
        }