public async Task Execute(ICommand command) { var handlerType = typeof(ICommandHandler <>) .MakeGenericType(command.GetType()); //dynamic handler = IoC.ThisContainer.GetInstance(handlerType); dynamic handler = IocContainerAdapter.Resolve(handlerType); await handler.Handle((dynamic)command); }
public async Task <TResult> Execute <TResult>(IQuery <TResult> query) { var handlerType = typeof(IQueryHandler <,>) .MakeGenericType(query.GetType(), typeof(TResult)); //dynamic handler = IoC.ThisContainer.GetInstance(handlerType); dynamic handler = IocContainerAdapter.Resolve(handlerType); // If you change the method name from 'Handle' - this method will crash. return(await handler.Handle((dynamic)query)); }