| 
					
				 | 
			
			
				@@ -132,6 +132,13 @@ namespace Grpc.Core.Interceptors 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// and returns a <see cref="Grpc.Core.Metadata" /> instance that will replace the existing 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// invocation metadata. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// </param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <remarks> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// Multiple interceptors can be added on top of each other by calling 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// "invoker.Intercept(a, b, c)".  The order of invocation will be "a", "b", and then "c". 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// Interceptors can be later added to an existing intercepted CallInvoker, effectively 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// building a chain like "invoker.Intercept(c).Intercept(b).Intercept(a)".  Note that 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// in this case, the last interceptor added will be the first to take control. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </remarks> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public static CallInvoker Intercept(this CallInvoker invoker, Func<Metadata, Metadata> interceptor) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return new InterceptingCallInvoker(invoker, new MetadataInterceptor(interceptor)); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -143,6 +150,13 @@ namespace Grpc.Core.Interceptors 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// <param name="invoker">The underlying invoker to intercept.</param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// <param name="interceptor">The interceptor to intercept calls to the invoker with.</param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <remarks> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// Multiple interceptors can be added on top of each other by calling 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// "invoker.Intercept(a, b, c)".  The order of invocation will be "a", "b", and then "c". 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// Interceptors can be later added to an existing intercepted CallInvoker, effectively 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// building a chain like "invoker.Intercept(c).Intercept(b).Intercept(a)".  Note that 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// in this case, the last interceptor added will be the first to take control. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </remarks> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public static CallInvoker Intercept(this CallInvoker invoker, Interceptor interceptor) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return new InterceptingCallInvoker(invoker, interceptor); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -157,6 +171,13 @@ namespace Grpc.Core.Interceptors 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// An array of interceptors to intercept the calls to the invoker with. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// Control is passed to the interceptors in the order specified. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// </param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <remarks> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// Multiple interceptors can be added on top of each other by calling 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// "invoker.Intercept(a, b, c)".  The order of invocation will be "a", "b", and then "c". 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// Interceptors can be later added to an existing intercepted CallInvoker, effectively 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// building a chain like "invoker.Intercept(c).Intercept(b).Intercept(a)".  Note that 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// in this case, the last interceptor added will be the first to take control. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </remarks> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public static CallInvoker Intercept(this CallInvoker invoker, params Interceptor[] interceptors) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             GrpcPreconditions.CheckNotNull(invoker, "invoker"); 
			 |