private ICompressionProvider?ResolveCompressionProvider() { Debug.Assert( _call.RequestGrpcEncoding != null, "Response encoding should have been calculated at this point."); var canCompress = GrpcProtocolHelpers.CanWriteCompressed(CallOptions.WriteOptions) && !string.Equals(_call.RequestGrpcEncoding, GrpcProtocolConstants.IdentityGrpcEncoding, StringComparison.Ordinal); if (canCompress) { if (_call.Channel.CompressionProviders.TryGetValue(_call.RequestGrpcEncoding, out var compressionProvider)) { return(compressionProvider); } throw new InvalidOperationException($"Could not find compression provider for '{_call.RequestGrpcEncoding}'."); } return(null); }