private bool TryRegisterInvocation(long correlationId, ClientInvocation request)
{
if (!_invocations.TryAdd(correlationId, request)) return false;
var listenerInvocation = request as ClientListenerInvocation;
if (listenerInvocation != null)
{
if (!_listenerInvocations.TryAdd(correlationId, listenerInvocation))
{
_invocations.TryRemove(correlationId, out request);
}
}
return true;
}