public async Task <TClient> FindGrpcClient <TClient>(string serverName, GrpcChannelOptions options, Interceptor[] interceptor = null) where TClient : ClientBase <TClient> { var address = await GetChannelAddress(serverName); var channel = _channelPool.GetOrAddChannelPool(address, options); if (interceptor == null) { return(Activator.CreateInstance(typeof(TClient), channel) as TClient); } var invoker = channel.Intercept(interceptor); return(Activator.CreateInstance(typeof(TClient), invoker) as TClient); }