I have a generic interface ICommandHandler<> that will have a number of implementations each for processing a specific implementation of ICommand
ICommandHandler<>
ICommand
Try this
dynamic handler=Activator.CreateInstance(handlerType); try { handler.Handle((dynamic)command); } catch { // do whatever you want }