internal ContextExecutor GetExecutor(DispatcherSubscription subscription)
{
//todo cache
HandlerExecutor func = CreateExecutorDelegate(
subscription.HandlerType,
subscription.Action,
subscription.MessageType);
bool isTaskResult = subscription.Action.IsAsync();
var executor = new ContextExecutor(func, isTaskResult); //todo
return executor;
}