public virtual EndpointDiscoveryMetadata[] ListEndpoints() { using (@lock.ForReading()) { return endpoints.Values.ToArray<EndpointDiscoveryMetadata>(); } }