|  | @@ -42,7 +42,7 @@ namespace Grpc.Core.Internal
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |      internal interface IServerCallHandler
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  | -        Task HandleCall(string methodName, CallSafeHandle call, GrpcEnvironment environment);
 | 
	
		
			
				|  |  | +        Task HandleCall(ServerRpcNew newRpc, GrpcEnvironment environment);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      internal class UnaryServerCallHandler<TRequest, TResponse> : IServerCallHandler
 | 
	
	
		
			
				|  | @@ -58,14 +58,14 @@ namespace Grpc.Core.Internal
 | 
	
		
			
				|  |  |              this.handler = handler;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        public async Task HandleCall(string methodName, CallSafeHandle call, GrpcEnvironment environment)
 | 
	
		
			
				|  |  | +        public async Task HandleCall(ServerRpcNew newRpc, GrpcEnvironment environment)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              var asyncCall = new AsyncCallServer<TRequest, TResponse>(
 | 
	
		
			
				|  |  |                  method.ResponseMarshaller.Serializer,
 | 
	
		
			
				|  |  |                  method.RequestMarshaller.Deserializer,
 | 
	
		
			
				|  |  |                  environment);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            asyncCall.Initialize(call);
 | 
	
		
			
				|  |  | +            asyncCall.Initialize(newRpc.Call);
 | 
	
		
			
				|  |  |              var finishedTask = asyncCall.ServerSideCallAsync();
 | 
	
		
			
				|  |  |              var requestStream = new ServerRequestStream<TRequest, TResponse>(asyncCall);
 | 
	
		
			
				|  |  |              var responseStream = new ServerResponseStream<TRequest, TResponse>(asyncCall);
 | 
	
	
		
			
				|  | @@ -111,14 +111,14 @@ namespace Grpc.Core.Internal
 | 
	
		
			
				|  |  |              this.handler = handler;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        public async Task HandleCall(string methodName, CallSafeHandle call, GrpcEnvironment environment)
 | 
	
		
			
				|  |  | +        public async Task HandleCall(ServerRpcNew newRpc, GrpcEnvironment environment)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              var asyncCall = new AsyncCallServer<TRequest, TResponse>(
 | 
	
		
			
				|  |  |                  method.ResponseMarshaller.Serializer,
 | 
	
		
			
				|  |  |                  method.RequestMarshaller.Deserializer,
 | 
	
		
			
				|  |  |                  environment);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            asyncCall.Initialize(call);
 | 
	
		
			
				|  |  | +            asyncCall.Initialize(newRpc.Call);
 | 
	
		
			
				|  |  |              var finishedTask = asyncCall.ServerSideCallAsync();
 | 
	
		
			
				|  |  |              var requestStream = new ServerRequestStream<TRequest, TResponse>(asyncCall);
 | 
	
		
			
				|  |  |              var responseStream = new ServerResponseStream<TRequest, TResponse>(asyncCall);
 | 
	
	
		
			
				|  | @@ -165,14 +165,14 @@ namespace Grpc.Core.Internal
 | 
	
		
			
				|  |  |              this.handler = handler;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        public async Task HandleCall(string methodName, CallSafeHandle call, GrpcEnvironment environment)
 | 
	
		
			
				|  |  | +        public async Task HandleCall(ServerRpcNew newRpc, GrpcEnvironment environment)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              var asyncCall = new AsyncCallServer<TRequest, TResponse>(
 | 
	
		
			
				|  |  |                  method.ResponseMarshaller.Serializer,
 | 
	
		
			
				|  |  |                  method.RequestMarshaller.Deserializer,
 | 
	
		
			
				|  |  |                  environment);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            asyncCall.Initialize(call);
 | 
	
		
			
				|  |  | +            asyncCall.Initialize(newRpc.Call);
 | 
	
		
			
				|  |  |              var finishedTask = asyncCall.ServerSideCallAsync();
 | 
	
		
			
				|  |  |              var requestStream = new ServerRequestStream<TRequest, TResponse>(asyncCall);
 | 
	
		
			
				|  |  |              var responseStream = new ServerResponseStream<TRequest, TResponse>(asyncCall);
 | 
	
	
		
			
				|  | @@ -222,14 +222,14 @@ namespace Grpc.Core.Internal
 | 
	
		
			
				|  |  |              this.handler = handler;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        public async Task HandleCall(string methodName, CallSafeHandle call, GrpcEnvironment environment)
 | 
	
		
			
				|  |  | +        public async Task HandleCall(ServerRpcNew newRpc, GrpcEnvironment environment)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              var asyncCall = new AsyncCallServer<TRequest, TResponse>(
 | 
	
		
			
				|  |  |                  method.ResponseMarshaller.Serializer,
 | 
	
		
			
				|  |  |                  method.RequestMarshaller.Deserializer,
 | 
	
		
			
				|  |  |                  environment);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            asyncCall.Initialize(call);
 | 
	
		
			
				|  |  | +            asyncCall.Initialize(newRpc.Call);
 | 
	
		
			
				|  |  |              var finishedTask = asyncCall.ServerSideCallAsync();
 | 
	
		
			
				|  |  |              var requestStream = new ServerRequestStream<TRequest, TResponse>(asyncCall);
 | 
	
		
			
				|  |  |              var responseStream = new ServerResponseStream<TRequest, TResponse>(asyncCall);
 | 
	
	
		
			
				|  | @@ -259,13 +259,15 @@ namespace Grpc.Core.Internal
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      internal class NoSuchMethodCallHandler : IServerCallHandler
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  | -        public async Task HandleCall(string methodName, CallSafeHandle call, GrpcEnvironment environment)
 | 
	
		
			
				|  |  | +        public static readonly NoSuchMethodCallHandler Instance = new NoSuchMethodCallHandler();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        public async Task HandleCall(ServerRpcNew newRpc, GrpcEnvironment environment)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              // We don't care about the payload type here.
 | 
	
		
			
				|  |  |              var asyncCall = new AsyncCallServer<byte[], byte[]>(
 | 
	
		
			
				|  |  |                  (payload) => payload, (payload) => payload, environment);
 | 
	
		
			
				|  |  |              
 | 
	
		
			
				|  |  | -            asyncCall.Initialize(call);
 | 
	
		
			
				|  |  | +            asyncCall.Initialize(newRpc.Call);
 | 
	
		
			
				|  |  |              var finishedTask = asyncCall.ServerSideCallAsync();
 | 
	
		
			
				|  |  |              var requestStream = new ServerRequestStream<byte[], byte[]>(asyncCall);
 | 
	
		
			
				|  |  |              var responseStream = new ServerResponseStream<byte[], byte[]>(asyncCall);
 |