protected TResult Invoke <TResult>(Func <TService, TResult> call) { using (var client = Factory.GetClient <TService>()) { try { return(call(client.Channel)); } catch { client.Abort(); throw; } } }