public void Route(object message)
{
var commandHandlerType = typeof (ICommandHandler<>).MakeGenericType(message.GetType());
var methodInfo = MethodInfos.GetOrAdd(commandHandlerType, t => t.GetMethod("Execute",new []{message.GetType()}));
var instances = _container.GetAllInstances(commandHandlerType);
foreach (var instance in instances)
{
methodInfo.Invoke(instance, new[] { message });
}
}