internal Uri RegisterRequest(Listener listener) { lock (this) { if (hasRequest) throw new InvalidOperationException (); hasRequest = true; return listener.RegisterHandler (this); } }