Sfoglia il codice sorgente

Merge pull request #20243 from jtattermusch/gh-pages

Regenerate C# API reference for v2.23.0
Jan Tattermusch 6 anni fa
parent
commit
d3a47a9b2f
51 ha cambiato i file con 3024 aggiunte e 241 eliminazioni
  1. 1 1
      csharp/api/Grpc.Core.AsyncAuthInterceptor.html
  2. 1 1
      csharp/api/Grpc.Core.AsyncClientStreamingCall-2.html
  3. 1 1
      csharp/api/Grpc.Core.AsyncDuplexStreamingCall-2.html
  4. 1 1
      csharp/api/Grpc.Core.AsyncServerStreamingCall-1.html
  5. 218 0
      csharp/api/Grpc.Core.AsyncStreamReaderExtensions.html
  6. 1 1
      csharp/api/Grpc.Core.AsyncUnaryCall-1.html
  7. 35 0
      csharp/api/Grpc.Core.AuthContext.html
  8. 1 1
      csharp/api/Grpc.Core.AuthInterceptorContext.html
  9. 371 0
      csharp/api/Grpc.Core.BindServiceMethodAttribute.html
  10. 33 1
      csharp/api/Grpc.Core.CallCredentials.html
  11. 220 0
      csharp/api/Grpc.Core.CallCredentialsConfiguratorBase.html
  12. 1 5
      csharp/api/Grpc.Core.CallInvoker.html
  13. 1 1
      csharp/api/Grpc.Core.CallOptions.html
  14. 36 39
      csharp/api/Grpc.Core.Channel.html
  15. 248 0
      csharp/api/Grpc.Core.ChannelBase.html
  16. 33 1
      csharp/api/Grpc.Core.ChannelCredentials.html
  17. 261 0
      csharp/api/Grpc.Core.ChannelCredentialsConfiguratorBase.html
  18. 4 4
      csharp/api/Grpc.Core.ClientBase-1.html
  19. 1 1
      csharp/api/Grpc.Core.ClientBase.ClientBaseConfiguration.html
  20. 4 4
      csharp/api/Grpc.Core.ClientBase.html
  21. 0 10
      csharp/api/Grpc.Core.DefaultCallInvoker.html
  22. 32 1
      csharp/api/Grpc.Core.DeserializationContext.html
  23. 73 1
      csharp/api/Grpc.Core.IAsyncStreamReader-1.html
  24. 1 1
      csharp/api/Grpc.Core.IClientStreamWriter-1.html
  25. 1 1
      csharp/api/Grpc.Core.Interceptors.CallInvokerExtensions.html
  26. 13 13
      csharp/api/Grpc.Core.Interceptors.ChannelExtensions.html
  27. 1 1
      csharp/api/Grpc.Core.Interceptors.ClientInterceptorContext-2.html
  28. 1 1
      csharp/api/Grpc.Core.Interceptors.Interceptor.AsyncClientStreamingCallContinuation-2.html
  29. 1 1
      csharp/api/Grpc.Core.Interceptors.Interceptor.AsyncDuplexStreamingCallContinuation-2.html
  30. 1 1
      csharp/api/Grpc.Core.Interceptors.Interceptor.AsyncServerStreamingCallContinuation-2.html
  31. 1 1
      csharp/api/Grpc.Core.Interceptors.Interceptor.AsyncUnaryCallContinuation-2.html
  32. 1 1
      csharp/api/Grpc.Core.Interceptors.Interceptor.BlockingUnaryCallContinuation-2.html
  33. 1 1
      csharp/api/Grpc.Core.Interceptors.Interceptor.html
  34. 1 1
      csharp/api/Grpc.Core.KeyCertificatePair.html
  35. 226 0
      csharp/api/Grpc.Core.LiteClientBase.html
  36. 49 0
      csharp/api/Grpc.Core.ServerCallContext.html
  37. 1 1
      csharp/api/Grpc.Core.SslClientCertificateRequestType.html
  38. 76 1
      csharp/api/Grpc.Core.SslCredentials.html
  39. 2 1
      csharp/api/Grpc.Core.StatusCode.html
  40. 8 8
      csharp/api/Grpc.Core.Testing.TestCalls.html
  41. 167 0
      csharp/api/Grpc.Core.VerifyPeerCallback.html
  42. 206 0
      csharp/api/Grpc.Core.VerifyPeerContext.html
  43. 4 4
      csharp/api/Grpc.Core.VersionInfo.html
  44. 42 0
      csharp/api/Grpc.Core.html
  45. 2 1
      csharp/api/Grpc.Health.V1.Health.HealthBase.html
  46. 3 3
      csharp/api/Grpc.Health.V1.Health.HealthClient.html
  47. 4 5
      csharp/api/Grpc.HealthCheck.HealthServiceImpl.html
  48. 24 0
      csharp/api/toc.html
  49. 0 8
      csharp/index.json
  50. 137 41
      csharp/manifest.json
  51. 473 71
      csharp/xrefmap.yml

+ 1 - 1
csharp/api/Grpc.Core.AsyncAuthInterceptor.html

@@ -87,7 +87,7 @@
 </div>
 </div>
   <div class="markdown level0 conceptual"></div>
   <div class="markdown level0 conceptual"></div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_AsyncAuthInterceptor_syntax">Syntax</h5>
   <h5 id="Grpc_Core_AsyncAuthInterceptor_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public delegate Task AsyncAuthInterceptor(AuthInterceptorContext context, Metadata metadata);</code></pre>
     <pre><code class="lang-csharp hljs">public delegate Task AsyncAuthInterceptor(AuthInterceptorContext context, Metadata metadata);</code></pre>

+ 1 - 1
csharp/api/Grpc.Core.AsyncClientStreamingCall-2.html

@@ -120,7 +120,7 @@
     </div>
     </div>
   </div>
   </div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_AsyncClientStreamingCall_2_syntax">Syntax</h5>
   <h5 id="Grpc_Core_AsyncClientStreamingCall_2_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public sealed class AsyncClientStreamingCall&lt;TRequest, TResponse&gt; : IDisposable</code></pre>
     <pre><code class="lang-csharp hljs">public sealed class AsyncClientStreamingCall&lt;TRequest, TResponse&gt; : IDisposable</code></pre>

+ 1 - 1
csharp/api/Grpc.Core.AsyncDuplexStreamingCall-2.html

@@ -120,7 +120,7 @@
     </div>
     </div>
   </div>
   </div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_AsyncDuplexStreamingCall_2_syntax">Syntax</h5>
   <h5 id="Grpc_Core_AsyncDuplexStreamingCall_2_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public sealed class AsyncDuplexStreamingCall&lt;TRequest, TResponse&gt; : IDisposable</code></pre>
     <pre><code class="lang-csharp hljs">public sealed class AsyncDuplexStreamingCall&lt;TRequest, TResponse&gt; : IDisposable</code></pre>

+ 1 - 1
csharp/api/Grpc.Core.AsyncServerStreamingCall-1.html

@@ -120,7 +120,7 @@
     </div>
     </div>
   </div>
   </div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_AsyncServerStreamingCall_1_syntax">Syntax</h5>
   <h5 id="Grpc_Core_AsyncServerStreamingCall_1_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public sealed class AsyncServerStreamingCall&lt;TResponse&gt; : IDisposable</code></pre>
     <pre><code class="lang-csharp hljs">public sealed class AsyncServerStreamingCall&lt;TResponse&gt; : IDisposable</code></pre>

+ 218 - 0
csharp/api/Grpc.Core.AsyncStreamReaderExtensions.html

@@ -0,0 +1,218 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Class AsyncStreamReaderExtensions
+   | gRPC C# </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Class AsyncStreamReaderExtensions
+   | gRPC C# ">
+    <meta name="generator" content="docfx 2.36.0.0">
+    
+    <link rel="shortcut icon" href="../favicon.ico">
+    <link rel="stylesheet" href="../styles/docfx.vendor.css">
+    <link rel="stylesheet" href="../styles/docfx.css">
+    <link rel="stylesheet" href="../styles/main.css">
+    <meta property="docfx:navrel" content="../toc.html">
+    <meta property="docfx:tocrel" content="toc.html">
+    
+    <meta property="docfx:rel" content="../">
+    
+  </head>
+  <body data-spy="scroll" data-target="#affix" data-offset="120">
+    <div id="wrapper">
+      <header>
+        
+        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
+          <div class="container">
+            <div class="navbar-header">
+              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+              </button>
+              
+              <a class="navbar-brand" href="../index.html">
+                <img id="logo" class="svg" src="../logo.svg" alt="">
+              </a>
+            </div>
+            <div class="collapse navbar-collapse" id="navbar">
+              <form class="navbar-form navbar-right" role="search" id="search">
+                <div class="form-group">
+                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
+                </div>
+              </form>
+            </div>
+          </div>
+        </nav>
+        
+        <div class="subnav navbar navbar-default">
+          <div class="container hide-when-search" id="breadcrumb">
+            <ul class="breadcrumb">
+              <li></li>
+            </ul>
+          </div>
+        </div>
+      </header>
+      <div class="container body-content">
+        
+        <div id="search-results">
+          <div class="search-list"></div>
+          <div class="sr-items">
+            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
+          </div>
+          <ul id="pagination"></ul>
+        </div>
+      </div>
+      <div role="main" class="container body-content hide-when-search">
+        
+        <div class="sidenav hide-when-search">
+          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
+          <div class="sidetoggle collapse" id="sidetoggle">
+            <div id="sidetoc"></div>
+          </div>
+        </div>
+        <div class="article row grid-right">
+          <div class="col-md-10">
+            <article class="content wrap" id="_content" data-uid="Grpc.Core.AsyncStreamReaderExtensions">
+  
+  
+  <h1 id="Grpc_Core_AsyncStreamReaderExtensions" data-uid="Grpc.Core.AsyncStreamReaderExtensions" class="text-break">Class AsyncStreamReaderExtensions
+  </h1>
+  <div class="markdown level0 summary"><p>Extension methods for <a class="xref" href="Grpc.Core.IAsyncStreamReader-1.html">IAsyncStreamReader&lt;T&gt;</a>.</p>
+</div>
+  <div class="markdown level0 conceptual"></div>
+  <div class="inheritance">
+    <h5>Inheritance</h5>
+    <div class="level0"><span class="xref">System.Object</span></div>
+    <div class="level1"><span class="xref">AsyncStreamReaderExtensions</span></div>
+  </div>
+  <div class="inheritedMembers">
+    <h5>Inherited Members</h5>
+    <div>
+      <span class="xref">System.Object.Equals(System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.GetHashCode()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.GetType()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.MemberwiseClone()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.ToString()</span>
+    </div>
+  </div>
+  <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
+  <h5 id="Grpc_Core_AsyncStreamReaderExtensions_syntax">Syntax</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public static class AsyncStreamReaderExtensions</code></pre>
+  </div>
+  <h3 id="methods">Methods
+  </h3>
+  <a id="Grpc_Core_AsyncStreamReaderExtensions_MoveNext_" data-uid="Grpc.Core.AsyncStreamReaderExtensions.MoveNext*"></a>
+  <h4 id="Grpc_Core_AsyncStreamReaderExtensions_MoveNext__1_Grpc_Core_IAsyncStreamReader___0__" data-uid="Grpc.Core.AsyncStreamReaderExtensions.MoveNext``1(Grpc.Core.IAsyncStreamReader{``0})">MoveNext&lt;T&gt;(IAsyncStreamReader&lt;T&gt;)</h4>
+  <div class="markdown level1 summary"><p>Advances the stream reader to the next element in the sequence, returning the result asynchronously.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public static Task&lt;bool&gt; MoveNext&lt;T&gt;(this IAsyncStreamReader&lt;T&gt; streamReader)
+    where T : class</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.IAsyncStreamReader-1.html">IAsyncStreamReader</a>&lt;T&gt;</td>
+        <td><span class="parametername">streamReader</span></td>
+        <td><p>The stream reader.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Threading.Tasks.Task</span>&lt;<span class="xref">System.Boolean</span>&gt;</td>
+        <td><p>Task containing the result of the operation: true if the reader was successfully advanced
+to the next element; false if the reader has passed the end of the sequence.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="typeParameters">Type Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="parametername">T</span></td>
+        <td><p>The message type.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+</article>
+          </div>
+          
+          <div class="hidden-sm col-md-2" role="complementary">
+            <div class="sideaffix">
+              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
+              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+              </nav>
+            </div>
+          </div>
+        </div>
+      </div>
+      
+      <footer>
+        <div class="grad-bottom"></div>
+        <div class="footer">
+          <div class="container">
+            <span class="pull-right">
+              <a href="#top">Back to top</a>
+            </span>
+            
+            <span>Generated by <strong>DocFX</strong></span>
+          </div>
+        </div>
+      </footer>
+    </div>
+    
+    <script type="text/javascript" src="../styles/docfx.vendor.js"></script>
+    <script type="text/javascript" src="../styles/docfx.js"></script>
+    <script type="text/javascript" src="../styles/main.js"></script>
+  </body>
+</html>

+ 1 - 1
csharp/api/Grpc.Core.AsyncUnaryCall-1.html

@@ -120,7 +120,7 @@
     </div>
     </div>
   </div>
   </div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_AsyncUnaryCall_1_syntax">Syntax</h5>
   <h5 id="Grpc_Core_AsyncUnaryCall_1_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public sealed class AsyncUnaryCall&lt;TResponse&gt; : IDisposable</code></pre>
     <pre><code class="lang-csharp hljs">public sealed class AsyncUnaryCall&lt;TResponse&gt; : IDisposable</code></pre>

+ 35 - 0
csharp/api/Grpc.Core.AuthContext.html

@@ -124,6 +124,41 @@ Note: experimental API that can change or be removed without any prior notice.</
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public class AuthContext</code></pre>
     <pre><code class="lang-csharp hljs">public class AuthContext</code></pre>
   </div>
   </div>
+  <h3 id="constructors">Constructors
+  </h3>
+  <a id="Grpc_Core_AuthContext__ctor_" data-uid="Grpc.Core.AuthContext.#ctor*"></a>
+  <h4 id="Grpc_Core_AuthContext__ctor_System_String_System_Collections_Generic_Dictionary_System_String_System_Collections_Generic_List_Grpc_Core_AuthProperty___" data-uid="Grpc.Core.AuthContext.#ctor(System.String,System.Collections.Generic.Dictionary{System.String,System.Collections.Generic.List{Grpc.Core.AuthProperty}})">AuthContext(String, Dictionary&lt;String, List&lt;AuthProperty&gt;&gt;)</h4>
+  <div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="Grpc.Core.AuthContext.html">AuthContext</a> class.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public AuthContext(string peerIdentityPropertyName, Dictionary&lt;string, List&lt;AuthProperty&gt;&gt; properties)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.String</span></td>
+        <td><span class="parametername">peerIdentityPropertyName</span></td>
+        <td><p>Peer identity property name.</p>
+</td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Collections.Generic.Dictionary</span>&lt;<span class="xref">System.String</span>, <span class="xref">System.Collections.Generic.List</span>&lt;<a class="xref" href="Grpc.Core.AuthProperty.html">AuthProperty</a>&gt;&gt;</td>
+        <td><span class="parametername">properties</span></td>
+        <td><p>Multimap of auth properties by name.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
   <h3 id="properties">Properties
   <h3 id="properties">Properties
   </h3>
   </h3>
   <a id="Grpc_Core_AuthContext_IsPeerAuthenticated_" data-uid="Grpc.Core.AuthContext.IsPeerAuthenticated*"></a>
   <a id="Grpc_Core_AuthContext_IsPeerAuthenticated_" data-uid="Grpc.Core.AuthContext.IsPeerAuthenticated*"></a>

+ 1 - 1
csharp/api/Grpc.Core.AuthInterceptorContext.html

@@ -116,7 +116,7 @@
     </div>
     </div>
   </div>
   </div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_AuthInterceptorContext_syntax">Syntax</h5>
   <h5 id="Grpc_Core_AuthInterceptorContext_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public class AuthInterceptorContext</code></pre>
     <pre><code class="lang-csharp hljs">public class AuthInterceptorContext</code></pre>

+ 371 - 0
csharp/api/Grpc.Core.BindServiceMethodAttribute.html

@@ -0,0 +1,371 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Class BindServiceMethodAttribute
+   | gRPC C# </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Class BindServiceMethodAttribute
+   | gRPC C# ">
+    <meta name="generator" content="docfx 2.36.0.0">
+    
+    <link rel="shortcut icon" href="../favicon.ico">
+    <link rel="stylesheet" href="../styles/docfx.vendor.css">
+    <link rel="stylesheet" href="../styles/docfx.css">
+    <link rel="stylesheet" href="../styles/main.css">
+    <meta property="docfx:navrel" content="../toc.html">
+    <meta property="docfx:tocrel" content="toc.html">
+    
+    <meta property="docfx:rel" content="../">
+    
+  </head>
+  <body data-spy="scroll" data-target="#affix" data-offset="120">
+    <div id="wrapper">
+      <header>
+        
+        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
+          <div class="container">
+            <div class="navbar-header">
+              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+              </button>
+              
+              <a class="navbar-brand" href="../index.html">
+                <img id="logo" class="svg" src="../logo.svg" alt="">
+              </a>
+            </div>
+            <div class="collapse navbar-collapse" id="navbar">
+              <form class="navbar-form navbar-right" role="search" id="search">
+                <div class="form-group">
+                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
+                </div>
+              </form>
+            </div>
+          </div>
+        </nav>
+        
+        <div class="subnav navbar navbar-default">
+          <div class="container hide-when-search" id="breadcrumb">
+            <ul class="breadcrumb">
+              <li></li>
+            </ul>
+          </div>
+        </div>
+      </header>
+      <div class="container body-content">
+        
+        <div id="search-results">
+          <div class="search-list"></div>
+          <div class="sr-items">
+            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
+          </div>
+          <ul id="pagination"></ul>
+        </div>
+      </div>
+      <div role="main" class="container body-content hide-when-search">
+        
+        <div class="sidenav hide-when-search">
+          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
+          <div class="sidetoggle collapse" id="sidetoggle">
+            <div id="sidetoc"></div>
+          </div>
+        </div>
+        <div class="article row grid-right">
+          <div class="col-md-10">
+            <article class="content wrap" id="_content" data-uid="Grpc.Core.BindServiceMethodAttribute">
+  
+  
+  <h1 id="Grpc_Core_BindServiceMethodAttribute" data-uid="Grpc.Core.BindServiceMethodAttribute" class="text-break">Class BindServiceMethodAttribute
+  </h1>
+  <div class="markdown level0 summary"><p>Specifies the location of the service bind method for a gRPC service.
+The bind method is typically generated code and is used to register a service&apos;s
+methods with the server on startup.</p>
+<p>The bind method signature takes a <a class="xref" href="Grpc.Core.ServiceBinderBase.html">ServiceBinderBase</a> and an optional
+instance of the service base class, e.g. <code>static void BindService(ServiceBinderBase, GreeterService)</code>.</p>
+</div>
+  <div class="markdown level0 conceptual"></div>
+  <div class="inheritance">
+    <h5>Inheritance</h5>
+    <div class="level0"><span class="xref">System.Object</span></div>
+    <div class="level1"><span class="xref">System.Attribute</span></div>
+    <div class="level2"><span class="xref">BindServiceMethodAttribute</span></div>
+  </div>
+  <div classs="implements">
+    <h5>Implements</h5>
+    <div><span class="xref">System.Runtime.InteropServices._Attribute</span></div>
+  </div>
+  <div class="inheritedMembers">
+    <h5>Inherited Members</h5>
+    <div>
+      <span class="xref">System.Attribute.Equals(System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type, System.Boolean)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type, System.Boolean)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type, System.Boolean)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type, System.Boolean)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.GetCustomAttributes(System.Reflection.Assembly)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Boolean)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type, System.Boolean)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Boolean)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type, System.Boolean)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.GetCustomAttributes(System.Reflection.Module)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Boolean)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type, System.Boolean)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Boolean)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type, System.Boolean)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.GetHashCode()</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.IsDefaultAttribute()</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.IsDefined(System.Reflection.Assembly, System.Type)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.IsDefined(System.Reflection.Assembly, System.Type, System.Boolean)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type, System.Boolean)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.IsDefined(System.Reflection.Module, System.Type)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.IsDefined(System.Reflection.Module, System.Type, System.Boolean)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type, System.Boolean)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.Match(System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.System.Runtime.InteropServices._Attribute.GetIDsOfNames(System.Guid, System.IntPtr, System.UInt32, System.UInt32, System.IntPtr)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.System.Runtime.InteropServices._Attribute.GetTypeInfo(System.UInt32, System.UInt32, System.IntPtr)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.System.Runtime.InteropServices._Attribute.GetTypeInfoCount(System.UInt32)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.System.Runtime.InteropServices._Attribute.Invoke(System.UInt32, System.Guid, System.UInt32, System.Int16, System.IntPtr, System.IntPtr, System.IntPtr, System.IntPtr)</span>
+    </div>
+    <div>
+      <span class="xref">System.Attribute.TypeId</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.GetType()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.MemberwiseClone()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.ToString()</span>
+    </div>
+  </div>
+  <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
+  <h5 id="Grpc_Core_BindServiceMethodAttribute_syntax">Syntax</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
+public class BindServiceMethodAttribute : Attribute, _Attribute</code></pre>
+  </div>
+  <h3 id="constructors">Constructors
+  </h3>
+  <a id="Grpc_Core_BindServiceMethodAttribute__ctor_" data-uid="Grpc.Core.BindServiceMethodAttribute.#ctor*"></a>
+  <h4 id="Grpc_Core_BindServiceMethodAttribute__ctor_System_Type_System_String_" data-uid="Grpc.Core.BindServiceMethodAttribute.#ctor(System.Type,System.String)">BindServiceMethodAttribute(Type, String)</h4>
+  <div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="Grpc.Core.BindServiceMethodAttribute.html">BindServiceMethodAttribute</a> class.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public BindServiceMethodAttribute(Type bindType, string bindMethodName)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Type</span></td>
+        <td><span class="parametername">bindType</span></td>
+        <td><p>The type the service bind method is defined on.</p>
+</td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.String</span></td>
+        <td><span class="parametername">bindMethodName</span></td>
+        <td><p>The name of the service bind method.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <h3 id="properties">Properties
+  </h3>
+  <a id="Grpc_Core_BindServiceMethodAttribute_BindMethodName_" data-uid="Grpc.Core.BindServiceMethodAttribute.BindMethodName*"></a>
+  <h4 id="Grpc_Core_BindServiceMethodAttribute_BindMethodName" data-uid="Grpc.Core.BindServiceMethodAttribute.BindMethodName">BindMethodName</h4>
+  <div class="markdown level1 summary"><p>Gets the name of the service bind method.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public string BindMethodName { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.String</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <a id="Grpc_Core_BindServiceMethodAttribute_BindType_" data-uid="Grpc.Core.BindServiceMethodAttribute.BindType*"></a>
+  <h4 id="Grpc_Core_BindServiceMethodAttribute_BindType" data-uid="Grpc.Core.BindServiceMethodAttribute.BindType">BindType</h4>
+  <div class="markdown level1 summary"><p>Gets the type the service bind method is defined on.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public Type BindType { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Type</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h3 id="implements">Implements</h3>
+  <div>
+      <span class="xref">System.Runtime.InteropServices._Attribute</span>
+  </div>
+</article>
+          </div>
+          
+          <div class="hidden-sm col-md-2" role="complementary">
+            <div class="sideaffix">
+              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
+              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+              </nav>
+            </div>
+          </div>
+        </div>
+      </div>
+      
+      <footer>
+        <div class="grad-bottom"></div>
+        <div class="footer">
+          <div class="container">
+            <span class="pull-right">
+              <a href="#top">Back to top</a>
+            </span>
+            
+            <span>Generated by <strong>DocFX</strong></span>
+          </div>
+        </div>
+      </footer>
+    </div>
+    
+    <script type="text/javascript" src="../styles/docfx.vendor.js"></script>
+    <script type="text/javascript" src="../styles/docfx.js"></script>
+    <script type="text/javascript" src="../styles/main.js"></script>
+  </body>
+</html>

+ 33 - 1
csharp/api/Grpc.Core.CallCredentials.html

@@ -116,7 +116,7 @@
     </div>
     </div>
   </div>
   </div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_CallCredentials_syntax">Syntax</h5>
   <h5 id="Grpc_Core_CallCredentials_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public abstract class CallCredentials</code></pre>
     <pre><code class="lang-csharp hljs">public abstract class CallCredentials</code></pre>
@@ -210,6 +210,38 @@ interceptor that can attach metadata to outgoing calls.</p>
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>
+  <a id="Grpc_Core_CallCredentials_InternalPopulateConfiguration_" data-uid="Grpc.Core.CallCredentials.InternalPopulateConfiguration*"></a>
+  <h4 id="Grpc_Core_CallCredentials_InternalPopulateConfiguration_Grpc_Core_CallCredentialsConfiguratorBase_System_Object_" data-uid="Grpc.Core.CallCredentials.InternalPopulateConfiguration(Grpc.Core.CallCredentialsConfiguratorBase,System.Object)">InternalPopulateConfiguration(CallCredentialsConfiguratorBase, Object)</h4>
+  <div class="markdown level1 summary"><p>Populates call credentials configurator with this instance&apos;s configuration.
+End users never need to invoke this method as it is part of internal implementation.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public abstract void InternalPopulateConfiguration(CallCredentialsConfiguratorBase configurator, object state)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.CallCredentialsConfiguratorBase.html">CallCredentialsConfiguratorBase</a></td>
+        <td><span class="parametername">configurator</span></td>
+        <td></td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Object</span></td>
+        <td><span class="parametername">state</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
 </article>
 </article>
           </div>
           </div>
           
           

+ 220 - 0
csharp/api/Grpc.Core.CallCredentialsConfiguratorBase.html

@@ -0,0 +1,220 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Class CallCredentialsConfiguratorBase
+   | gRPC C# </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Class CallCredentialsConfiguratorBase
+   | gRPC C# ">
+    <meta name="generator" content="docfx 2.36.0.0">
+    
+    <link rel="shortcut icon" href="../favicon.ico">
+    <link rel="stylesheet" href="../styles/docfx.vendor.css">
+    <link rel="stylesheet" href="../styles/docfx.css">
+    <link rel="stylesheet" href="../styles/main.css">
+    <meta property="docfx:navrel" content="../toc.html">
+    <meta property="docfx:tocrel" content="toc.html">
+    
+    <meta property="docfx:rel" content="../">
+    
+  </head>
+  <body data-spy="scroll" data-target="#affix" data-offset="120">
+    <div id="wrapper">
+      <header>
+        
+        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
+          <div class="container">
+            <div class="navbar-header">
+              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+              </button>
+              
+              <a class="navbar-brand" href="../index.html">
+                <img id="logo" class="svg" src="../logo.svg" alt="">
+              </a>
+            </div>
+            <div class="collapse navbar-collapse" id="navbar">
+              <form class="navbar-form navbar-right" role="search" id="search">
+                <div class="form-group">
+                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
+                </div>
+              </form>
+            </div>
+          </div>
+        </nav>
+        
+        <div class="subnav navbar navbar-default">
+          <div class="container hide-when-search" id="breadcrumb">
+            <ul class="breadcrumb">
+              <li></li>
+            </ul>
+          </div>
+        </div>
+      </header>
+      <div class="container body-content">
+        
+        <div id="search-results">
+          <div class="search-list"></div>
+          <div class="sr-items">
+            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
+          </div>
+          <ul id="pagination"></ul>
+        </div>
+      </div>
+      <div role="main" class="container body-content hide-when-search">
+        
+        <div class="sidenav hide-when-search">
+          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
+          <div class="sidetoggle collapse" id="sidetoggle">
+            <div id="sidetoc"></div>
+          </div>
+        </div>
+        <div class="article row grid-right">
+          <div class="col-md-10">
+            <article class="content wrap" id="_content" data-uid="Grpc.Core.CallCredentialsConfiguratorBase">
+  
+  
+  <h1 id="Grpc_Core_CallCredentialsConfiguratorBase" data-uid="Grpc.Core.CallCredentialsConfiguratorBase" class="text-break">Class CallCredentialsConfiguratorBase
+  </h1>
+  <div class="markdown level0 summary"><p>Base class for objects that can consume configuration from <code>CallCredentials</code> objects.
+Note: experimental API that can change or be removed without any prior notice.</p>
+</div>
+  <div class="markdown level0 conceptual"></div>
+  <div class="inheritance">
+    <h5>Inheritance</h5>
+    <div class="level0"><span class="xref">System.Object</span></div>
+    <div class="level1"><span class="xref">CallCredentialsConfiguratorBase</span></div>
+  </div>
+  <div class="inheritedMembers">
+    <h5>Inherited Members</h5>
+    <div>
+      <span class="xref">System.Object.Equals(System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.GetHashCode()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.GetType()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.MemberwiseClone()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.ToString()</span>
+    </div>
+  </div>
+  <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
+  <h5 id="Grpc_Core_CallCredentialsConfiguratorBase_syntax">Syntax</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public abstract class CallCredentialsConfiguratorBase</code></pre>
+  </div>
+  <h3 id="methods">Methods
+  </h3>
+  <a id="Grpc_Core_CallCredentialsConfiguratorBase_SetAsyncAuthInterceptorCredentials_" data-uid="Grpc.Core.CallCredentialsConfiguratorBase.SetAsyncAuthInterceptorCredentials*"></a>
+  <h4 id="Grpc_Core_CallCredentialsConfiguratorBase_SetAsyncAuthInterceptorCredentials_System_Object_Grpc_Core_AsyncAuthInterceptor_" data-uid="Grpc.Core.CallCredentialsConfiguratorBase.SetAsyncAuthInterceptorCredentials(System.Object,Grpc.Core.AsyncAuthInterceptor)">SetAsyncAuthInterceptorCredentials(Object, AsyncAuthInterceptor)</h4>
+  <div class="markdown level1 summary"><p>Consumes configuration for call credentials created from <code>AsyncAuthInterceptor</code></p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public abstract void SetAsyncAuthInterceptorCredentials(object state, AsyncAuthInterceptor interceptor)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Object</span></td>
+        <td><span class="parametername">state</span></td>
+        <td></td>
+      </tr>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.AsyncAuthInterceptor.html">AsyncAuthInterceptor</a></td>
+        <td><span class="parametername">interceptor</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <a id="Grpc_Core_CallCredentialsConfiguratorBase_SetCompositeCredentials_" data-uid="Grpc.Core.CallCredentialsConfiguratorBase.SetCompositeCredentials*"></a>
+  <h4 id="Grpc_Core_CallCredentialsConfiguratorBase_SetCompositeCredentials_System_Object_System_Collections_Generic_IReadOnlyList_Grpc_Core_CallCredentials__" data-uid="Grpc.Core.CallCredentialsConfiguratorBase.SetCompositeCredentials(System.Object,System.Collections.Generic.IReadOnlyList{Grpc.Core.CallCredentials})">SetCompositeCredentials(Object, IReadOnlyList&lt;CallCredentials&gt;)</h4>
+  <div class="markdown level1 summary"><p>Consumes configuration for composite call credentials.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public abstract void SetCompositeCredentials(object state, IReadOnlyList&lt;CallCredentials&gt; credentials)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Object</span></td>
+        <td><span class="parametername">state</span></td>
+        <td></td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Collections.Generic.IReadOnlyList</span>&lt;<a class="xref" href="Grpc.Core.CallCredentials.html">CallCredentials</a>&gt;</td>
+        <td><span class="parametername">credentials</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+</article>
+          </div>
+          
+          <div class="hidden-sm col-md-2" role="complementary">
+            <div class="sideaffix">
+              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
+              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+              </nav>
+            </div>
+          </div>
+        </div>
+      </div>
+      
+      <footer>
+        <div class="grad-bottom"></div>
+        <div class="footer">
+          <div class="container">
+            <span class="pull-right">
+              <a href="#top">Back to top</a>
+            </span>
+            
+            <span>Generated by <strong>DocFX</strong></span>
+          </div>
+        </div>
+      </footer>
+    </div>
+    
+    <script type="text/javascript" src="../styles/docfx.vendor.js"></script>
+    <script type="text/javascript" src="../styles/docfx.js"></script>
+    <script type="text/javascript" src="../styles/main.js"></script>
+  </body>
+</html>

+ 1 - 5
csharp/api/Grpc.Core.CallInvoker.html

@@ -117,7 +117,7 @@
     </div>
     </div>
   </div>
   </div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_CallInvoker_syntax">Syntax</h5>
   <h5 id="Grpc_Core_CallInvoker_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public abstract class CallInvoker</code></pre>
     <pre><code class="lang-csharp hljs">public abstract class CallInvoker</code></pre>
@@ -508,10 +508,6 @@ In server streaming scenario, client sends on request and server responds with a
   <div>
   <div>
       <a class="xref" href="Grpc.Core.Interceptors.CallInvokerExtensions.html#Grpc_Core_Interceptors_CallInvokerExtensions_Intercept_Grpc_Core_CallInvoker_System_Func_Grpc_Core_Metadata_Grpc_Core_Metadata__">CallInvokerExtensions.Intercept(CallInvoker, Func&lt;Metadata, Metadata&gt;)</a>
       <a class="xref" href="Grpc.Core.Interceptors.CallInvokerExtensions.html#Grpc_Core_Interceptors_CallInvokerExtensions_Intercept_Grpc_Core_CallInvoker_System_Func_Grpc_Core_Metadata_Grpc_Core_Metadata__">CallInvokerExtensions.Intercept(CallInvoker, Func&lt;Metadata, Metadata&gt;)</a>
   </div>
   </div>
-  <h3 id="seealso">See Also</h3>
-  <div class="seealso">
-      <div><a class="xref" href="Grpc.Core.Calls.html">Calls</a></div>
-  </div>
 </article>
 </article>
           </div>
           </div>
           
           

+ 1 - 1
csharp/api/Grpc.Core.CallOptions.html

@@ -108,7 +108,7 @@
     </div>
     </div>
   </div>
   </div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_CallOptions_syntax">Syntax</h5>
   <h5 id="Grpc_Core_CallOptions_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public struct CallOptions</code></pre>
     <pre><code class="lang-csharp hljs">public struct CallOptions</code></pre>

+ 36 - 39
csharp/api/Grpc.Core.Channel.html

@@ -91,10 +91,14 @@ a remote call so in general you should reuse a single channel for as many calls
   <div class="inheritance">
   <div class="inheritance">
     <h5>Inheritance</h5>
     <h5>Inheritance</h5>
     <div class="level0"><span class="xref">System.Object</span></div>
     <div class="level0"><span class="xref">System.Object</span></div>
-    <div class="level1"><span class="xref">Channel</span></div>
+    <div class="level1"><a class="xref" href="Grpc.Core.ChannelBase.html">ChannelBase</a></div>
+    <div class="level2"><span class="xref">Channel</span></div>
   </div>
   </div>
   <div class="inheritedMembers">
   <div class="inheritedMembers">
     <h5>Inherited Members</h5>
     <h5>Inherited Members</h5>
+    <div>
+      <a class="xref" href="Grpc.Core.ChannelBase.html#Grpc_Core_ChannelBase_Target">ChannelBase.Target</a>
+    </div>
     <div>
     <div>
       <span class="xref">System.Object.Equals(System.Object)</span>
       <span class="xref">System.Object.Equals(System.Object)</span>
     </div>
     </div>
@@ -121,7 +125,7 @@ a remote call so in general you should reuse a single channel for as many calls
   <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
   <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
   <h5 id="Grpc_Core_Channel_syntax">Syntax</h5>
   <h5 id="Grpc_Core_Channel_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
-    <pre><code class="lang-csharp hljs">public class Channel</code></pre>
+    <pre><code class="lang-csharp hljs">public class Channel : ChannelBase</code></pre>
   </div>
   </div>
   <h3 id="constructors">Constructors
   <h3 id="constructors">Constructors
   </h3>
   </h3>
@@ -162,7 +166,7 @@ Port will default to 80 for an unsecure channel and to 443 for a secure channel.
   <a id="Grpc_Core_Channel__ctor_" data-uid="Grpc.Core.Channel.#ctor*"></a>
   <a id="Grpc_Core_Channel__ctor_" data-uid="Grpc.Core.Channel.#ctor*"></a>
   <h4 id="Grpc_Core_Channel__ctor_System_String_Grpc_Core_ChannelCredentials_System_Collections_Generic_IEnumerable_Grpc_Core_ChannelOption__" data-uid="Grpc.Core.Channel.#ctor(System.String,Grpc.Core.ChannelCredentials,System.Collections.Generic.IEnumerable{Grpc.Core.ChannelOption})">Channel(String, ChannelCredentials, IEnumerable&lt;ChannelOption&gt;)</h4>
   <h4 id="Grpc_Core_Channel__ctor_System_String_Grpc_Core_ChannelCredentials_System_Collections_Generic_IEnumerable_Grpc_Core_ChannelOption__" data-uid="Grpc.Core.Channel.#ctor(System.String,Grpc.Core.ChannelCredentials,System.Collections.Generic.IEnumerable{Grpc.Core.ChannelOption})">Channel(String, ChannelCredentials, IEnumerable&lt;ChannelOption&gt;)</h4>
   <div class="markdown level1 summary"><p>Creates a channel that connects to a specific host.
   <div class="markdown level1 summary"><p>Creates a channel that connects to a specific host.
-Port will default to 80 for an unsecure channel and to 443 for a secure channel.</p>
+Port will default to 80 for an unsecure channel or to 443 for a secure channel.</p>
 </div>
 </div>
   <div class="markdown level1 conceptual"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <h5 class="decalaration">Declaration</h5>
@@ -336,7 +340,7 @@ Port will default to 80 for an unsecure channel and to 443 for a secure channel.
   <a id="Grpc_Core_Channel_State_" data-uid="Grpc.Core.Channel.State*"></a>
   <a id="Grpc_Core_Channel_State_" data-uid="Grpc.Core.Channel.State*"></a>
   <h4 id="Grpc_Core_Channel_State" data-uid="Grpc.Core.Channel.State">State</h4>
   <h4 id="Grpc_Core_Channel_State" data-uid="Grpc.Core.Channel.State">State</h4>
   <div class="markdown level1 summary"><p>Gets current connectivity state of this channel.
   <div class="markdown level1 summary"><p>Gets current connectivity state of this channel.
-After channel is has been shutdown, <code>ChannelState.Shutdown</code> will be returned.</p>
+After channel has been shutdown, <code>ChannelState.Shutdown</code> will be returned.</p>
 </div>
 </div>
   <div class="markdown level1 conceptual"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <h5 class="decalaration">Declaration</h5>
@@ -358,30 +362,6 @@ After channel is has been shutdown, <code>ChannelState.Shutdown</code> will be r
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>
-  <a id="Grpc_Core_Channel_Target_" data-uid="Grpc.Core.Channel.Target*"></a>
-  <h4 id="Grpc_Core_Channel_Target" data-uid="Grpc.Core.Channel.Target">Target</h4>
-  <div class="markdown level1 summary"><p>The original target used to create the channel.</p>
-</div>
-  <div class="markdown level1 conceptual"></div>
-  <h5 class="decalaration">Declaration</h5>
-  <div class="codewrapper">
-    <pre><code class="lang-csharp hljs">public string Target { get; }</code></pre>
-  </div>
-  <h5 class="propertyValue">Property Value</h5>
-  <table class="table table-bordered table-striped table-condensed">
-    <thead>
-      <tr>
-        <th>Type</th>
-        <th>Description</th>
-      </tr>
-    </thead>
-    <tbody>
-      <tr>
-        <td><span class="xref">System.String</span></td>
-        <td></td>
-      </tr>
-    </tbody>
-  </table>
   <h3 id="methods">Methods
   <h3 id="methods">Methods
   </h3>
   </h3>
   <a id="Grpc_Core_Channel_ConnectAsync_" data-uid="Grpc.Core.Channel.ConnectAsync*"></a>
   <a id="Grpc_Core_Channel_ConnectAsync_" data-uid="Grpc.Core.Channel.ConnectAsync*"></a>
@@ -430,6 +410,33 @@ Starting an RPC on a new channel will request connection implicitly.</p>
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>
+  <a id="Grpc_Core_Channel_CreateCallInvoker_" data-uid="Grpc.Core.Channel.CreateCallInvoker*"></a>
+  <h4 id="Grpc_Core_Channel_CreateCallInvoker" data-uid="Grpc.Core.Channel.CreateCallInvoker">CreateCallInvoker()</h4>
+  <div class="markdown level1 summary"><p>Create a new <a class="xref" href="Grpc.Core.CallInvoker.html">CallInvoker</a> for the channel.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public override CallInvoker CreateCallInvoker()</code></pre>
+  </div>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.CallInvoker.html">CallInvoker</a></td>
+        <td><p>A new <a class="xref" href="Grpc.Core.CallInvoker.html">CallInvoker</a>.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="overrides">Overrides</h5>
+  <div><a class="xref" href="Grpc.Core.ChannelBase.html#Grpc_Core_ChannelBase_CreateCallInvoker">ChannelBase.CreateCallInvoker()</a></div>
   <a id="Grpc_Core_Channel_ShutdownAsync_" data-uid="Grpc.Core.Channel.ShutdownAsync*"></a>
   <a id="Grpc_Core_Channel_ShutdownAsync_" data-uid="Grpc.Core.Channel.ShutdownAsync*"></a>
   <h4 id="Grpc_Core_Channel_ShutdownAsync" data-uid="Grpc.Core.Channel.ShutdownAsync">ShutdownAsync()</h4>
   <h4 id="Grpc_Core_Channel_ShutdownAsync" data-uid="Grpc.Core.Channel.ShutdownAsync">ShutdownAsync()</h4>
   <div class="markdown level1 summary"><p>Shuts down the channel cleanly. It is strongly recommended to shutdown
   <div class="markdown level1 summary"><p>Shuts down the channel cleanly. It is strongly recommended to shutdown
@@ -513,7 +520,7 @@ given lastObservedState (<code>true</code> is returned) or if the wait has timed
   <h4 id="Grpc_Core_Channel_WaitForStateChangedAsync_Grpc_Core_ChannelState_System_Nullable_System_DateTime__" data-uid="Grpc.Core.Channel.WaitForStateChangedAsync(Grpc.Core.ChannelState,System.Nullable{System.DateTime})">WaitForStateChangedAsync(ChannelState, Nullable&lt;DateTime&gt;)</h4>
   <h4 id="Grpc_Core_Channel_WaitForStateChangedAsync_Grpc_Core_ChannelState_System_Nullable_System_DateTime__" data-uid="Grpc.Core.Channel.WaitForStateChangedAsync(Grpc.Core.ChannelState,System.Nullable{System.DateTime})">WaitForStateChangedAsync(ChannelState, Nullable&lt;DateTime&gt;)</h4>
   <div class="markdown level1 summary"><p>Returned tasks completes once channel state has become different from 
   <div class="markdown level1 summary"><p>Returned tasks completes once channel state has become different from 
 given lastObservedState. 
 given lastObservedState. 
-If deadline is reached or and error occurs, returned task is cancelled.</p>
+If deadline is reached or an error occurs, returned task is cancelled.</p>
 </div>
 </div>
   <div class="markdown level1 conceptual"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <h5 class="decalaration">Declaration</h5>
@@ -557,16 +564,6 @@ If deadline is reached or and error occurs, returned task is cancelled.</p>
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>
-  <h3 id="extensionmethods">Extension Methods</h3>
-  <div>
-      <a class="xref" href="Grpc.Core.Interceptors.ChannelExtensions.html#Grpc_Core_Interceptors_ChannelExtensions_Intercept_Grpc_Core_Channel_Grpc_Core_Interceptors_Interceptor_">ChannelExtensions.Intercept(Channel, Interceptor)</a>
-  </div>
-  <div>
-      <a class="xref" href="Grpc.Core.Interceptors.ChannelExtensions.html#Grpc_Core_Interceptors_ChannelExtensions_Intercept_Grpc_Core_Channel_Grpc_Core_Interceptors_Interceptor___">ChannelExtensions.Intercept(Channel, Interceptor[])</a>
-  </div>
-  <div>
-      <a class="xref" href="Grpc.Core.Interceptors.ChannelExtensions.html#Grpc_Core_Interceptors_ChannelExtensions_Intercept_Grpc_Core_Channel_System_Func_Grpc_Core_Metadata_Grpc_Core_Metadata__">ChannelExtensions.Intercept(Channel, Func&lt;Metadata, Metadata&gt;)</a>
-  </div>
 </article>
 </article>
           </div>
           </div>
           
           

+ 248 - 0
csharp/api/Grpc.Core.ChannelBase.html

@@ -0,0 +1,248 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Class ChannelBase
+   | gRPC C# </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Class ChannelBase
+   | gRPC C# ">
+    <meta name="generator" content="docfx 2.36.0.0">
+    
+    <link rel="shortcut icon" href="../favicon.ico">
+    <link rel="stylesheet" href="../styles/docfx.vendor.css">
+    <link rel="stylesheet" href="../styles/docfx.css">
+    <link rel="stylesheet" href="../styles/main.css">
+    <meta property="docfx:navrel" content="../toc.html">
+    <meta property="docfx:tocrel" content="toc.html">
+    
+    <meta property="docfx:rel" content="../">
+    
+  </head>
+  <body data-spy="scroll" data-target="#affix" data-offset="120">
+    <div id="wrapper">
+      <header>
+        
+        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
+          <div class="container">
+            <div class="navbar-header">
+              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+              </button>
+              
+              <a class="navbar-brand" href="../index.html">
+                <img id="logo" class="svg" src="../logo.svg" alt="">
+              </a>
+            </div>
+            <div class="collapse navbar-collapse" id="navbar">
+              <form class="navbar-form navbar-right" role="search" id="search">
+                <div class="form-group">
+                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
+                </div>
+              </form>
+            </div>
+          </div>
+        </nav>
+        
+        <div class="subnav navbar navbar-default">
+          <div class="container hide-when-search" id="breadcrumb">
+            <ul class="breadcrumb">
+              <li></li>
+            </ul>
+          </div>
+        </div>
+      </header>
+      <div class="container body-content">
+        
+        <div id="search-results">
+          <div class="search-list"></div>
+          <div class="sr-items">
+            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
+          </div>
+          <ul id="pagination"></ul>
+        </div>
+      </div>
+      <div role="main" class="container body-content hide-when-search">
+        
+        <div class="sidenav hide-when-search">
+          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
+          <div class="sidetoggle collapse" id="sidetoggle">
+            <div id="sidetoc"></div>
+          </div>
+        </div>
+        <div class="article row grid-right">
+          <div class="col-md-10">
+            <article class="content wrap" id="_content" data-uid="Grpc.Core.ChannelBase">
+  
+  
+  <h1 id="Grpc_Core_ChannelBase" data-uid="Grpc.Core.ChannelBase" class="text-break">Class ChannelBase
+  </h1>
+  <div class="markdown level0 summary"><p>Base class for gRPC channel. Channels are an abstraction of long-lived connections to remote servers.</p>
+</div>
+  <div class="markdown level0 conceptual"></div>
+  <div class="inheritance">
+    <h5>Inheritance</h5>
+    <div class="level0"><span class="xref">System.Object</span></div>
+    <div class="level1"><span class="xref">ChannelBase</span></div>
+      <div class="level2"><a class="xref" href="Grpc.Core.Channel.html">Channel</a></div>
+  </div>
+  <div class="inheritedMembers">
+    <h5>Inherited Members</h5>
+    <div>
+      <span class="xref">System.Object.Equals(System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.GetHashCode()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.GetType()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.MemberwiseClone()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.ToString()</span>
+    </div>
+  </div>
+  <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
+  <h5 id="Grpc_Core_ChannelBase_syntax">Syntax</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public abstract class ChannelBase</code></pre>
+  </div>
+  <h3 id="constructors">Constructors
+  </h3>
+  <a id="Grpc_Core_ChannelBase__ctor_" data-uid="Grpc.Core.ChannelBase.#ctor*"></a>
+  <h4 id="Grpc_Core_ChannelBase__ctor_System_String_" data-uid="Grpc.Core.ChannelBase.#ctor(System.String)">ChannelBase(String)</h4>
+  <div class="markdown level1 summary"><p>Initializes a new instance of <a class="xref" href="Grpc.Core.ChannelBase.html">ChannelBase</a> class that connects to a specific host.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">protected ChannelBase(string target)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.String</span></td>
+        <td><span class="parametername">target</span></td>
+        <td><p>Target of the channel.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <h3 id="properties">Properties
+  </h3>
+  <a id="Grpc_Core_ChannelBase_Target_" data-uid="Grpc.Core.ChannelBase.Target*"></a>
+  <h4 id="Grpc_Core_ChannelBase_Target" data-uid="Grpc.Core.ChannelBase.Target">Target</h4>
+  <div class="markdown level1 summary"><p>The original target used to create the channel.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public string Target { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.String</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h3 id="methods">Methods
+  </h3>
+  <a id="Grpc_Core_ChannelBase_CreateCallInvoker_" data-uid="Grpc.Core.ChannelBase.CreateCallInvoker*"></a>
+  <h4 id="Grpc_Core_ChannelBase_CreateCallInvoker" data-uid="Grpc.Core.ChannelBase.CreateCallInvoker">CreateCallInvoker()</h4>
+  <div class="markdown level1 summary"><p>Create a new <a class="xref" href="Grpc.Core.CallInvoker.html">CallInvoker</a> for the channel.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public abstract CallInvoker CreateCallInvoker()</code></pre>
+  </div>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.CallInvoker.html">CallInvoker</a></td>
+        <td><p>A new <a class="xref" href="Grpc.Core.CallInvoker.html">CallInvoker</a>.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <h3 id="extensionmethods">Extension Methods</h3>
+  <div>
+      <a class="xref" href="Grpc.Core.Interceptors.ChannelExtensions.html#Grpc_Core_Interceptors_ChannelExtensions_Intercept_Grpc_Core_ChannelBase_Grpc_Core_Interceptors_Interceptor_">ChannelExtensions.Intercept(ChannelBase, Interceptor)</a>
+  </div>
+  <div>
+      <a class="xref" href="Grpc.Core.Interceptors.ChannelExtensions.html#Grpc_Core_Interceptors_ChannelExtensions_Intercept_Grpc_Core_ChannelBase_Grpc_Core_Interceptors_Interceptor___">ChannelExtensions.Intercept(ChannelBase, Interceptor[])</a>
+  </div>
+  <div>
+      <a class="xref" href="Grpc.Core.Interceptors.ChannelExtensions.html#Grpc_Core_Interceptors_ChannelExtensions_Intercept_Grpc_Core_ChannelBase_System_Func_Grpc_Core_Metadata_Grpc_Core_Metadata__">ChannelExtensions.Intercept(ChannelBase, Func&lt;Metadata, Metadata&gt;)</a>
+  </div>
+</article>
+          </div>
+          
+          <div class="hidden-sm col-md-2" role="complementary">
+            <div class="sideaffix">
+              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
+              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+              </nav>
+            </div>
+          </div>
+        </div>
+      </div>
+      
+      <footer>
+        <div class="grad-bottom"></div>
+        <div class="footer">
+          <div class="container">
+            <span class="pull-right">
+              <a href="#top">Back to top</a>
+            </span>
+            
+            <span>Generated by <strong>DocFX</strong></span>
+          </div>
+        </div>
+      </footer>
+    </div>
+    
+    <script type="text/javascript" src="../styles/docfx.vendor.js"></script>
+    <script type="text/javascript" src="../styles/docfx.js"></script>
+    <script type="text/javascript" src="../styles/main.js"></script>
+  </body>
+</html>

+ 33 - 1
csharp/api/Grpc.Core.ChannelCredentials.html

@@ -117,7 +117,7 @@
     </div>
     </div>
   </div>
   </div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_ChannelCredentials_syntax">Syntax</h5>
   <h5 id="Grpc_Core_ChannelCredentials_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public abstract class ChannelCredentials</code></pre>
     <pre><code class="lang-csharp hljs">public abstract class ChannelCredentials</code></pre>
@@ -212,6 +212,38 @@ given channel credentials with call credentials.</p>
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>
+  <a id="Grpc_Core_ChannelCredentials_InternalPopulateConfiguration_" data-uid="Grpc.Core.ChannelCredentials.InternalPopulateConfiguration*"></a>
+  <h4 id="Grpc_Core_ChannelCredentials_InternalPopulateConfiguration_Grpc_Core_ChannelCredentialsConfiguratorBase_System_Object_" data-uid="Grpc.Core.ChannelCredentials.InternalPopulateConfiguration(Grpc.Core.ChannelCredentialsConfiguratorBase,System.Object)">InternalPopulateConfiguration(ChannelCredentialsConfiguratorBase, Object)</h4>
+  <div class="markdown level1 summary"><p>Populates channel credentials configurator with this instance&apos;s configuration.
+End users never need to invoke this method as it is part of internal implementation.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public abstract void InternalPopulateConfiguration(ChannelCredentialsConfiguratorBase configurator, object state)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.ChannelCredentialsConfiguratorBase.html">ChannelCredentialsConfiguratorBase</a></td>
+        <td><span class="parametername">configurator</span></td>
+        <td></td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Object</span></td>
+        <td><span class="parametername">state</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
 </article>
 </article>
           </div>
           </div>
           
           

+ 261 - 0
csharp/api/Grpc.Core.ChannelCredentialsConfiguratorBase.html

@@ -0,0 +1,261 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Class ChannelCredentialsConfiguratorBase
+   | gRPC C# </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Class ChannelCredentialsConfiguratorBase
+   | gRPC C# ">
+    <meta name="generator" content="docfx 2.36.0.0">
+    
+    <link rel="shortcut icon" href="../favicon.ico">
+    <link rel="stylesheet" href="../styles/docfx.vendor.css">
+    <link rel="stylesheet" href="../styles/docfx.css">
+    <link rel="stylesheet" href="../styles/main.css">
+    <meta property="docfx:navrel" content="../toc.html">
+    <meta property="docfx:tocrel" content="toc.html">
+    
+    <meta property="docfx:rel" content="../">
+    
+  </head>
+  <body data-spy="scroll" data-target="#affix" data-offset="120">
+    <div id="wrapper">
+      <header>
+        
+        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
+          <div class="container">
+            <div class="navbar-header">
+              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+              </button>
+              
+              <a class="navbar-brand" href="../index.html">
+                <img id="logo" class="svg" src="../logo.svg" alt="">
+              </a>
+            </div>
+            <div class="collapse navbar-collapse" id="navbar">
+              <form class="navbar-form navbar-right" role="search" id="search">
+                <div class="form-group">
+                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
+                </div>
+              </form>
+            </div>
+          </div>
+        </nav>
+        
+        <div class="subnav navbar navbar-default">
+          <div class="container hide-when-search" id="breadcrumb">
+            <ul class="breadcrumb">
+              <li></li>
+            </ul>
+          </div>
+        </div>
+      </header>
+      <div class="container body-content">
+        
+        <div id="search-results">
+          <div class="search-list"></div>
+          <div class="sr-items">
+            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
+          </div>
+          <ul id="pagination"></ul>
+        </div>
+      </div>
+      <div role="main" class="container body-content hide-when-search">
+        
+        <div class="sidenav hide-when-search">
+          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
+          <div class="sidetoggle collapse" id="sidetoggle">
+            <div id="sidetoc"></div>
+          </div>
+        </div>
+        <div class="article row grid-right">
+          <div class="col-md-10">
+            <article class="content wrap" id="_content" data-uid="Grpc.Core.ChannelCredentialsConfiguratorBase">
+  
+  
+  <h1 id="Grpc_Core_ChannelCredentialsConfiguratorBase" data-uid="Grpc.Core.ChannelCredentialsConfiguratorBase" class="text-break">Class ChannelCredentialsConfiguratorBase
+  </h1>
+  <div class="markdown level0 summary"><p>Base class for objects that can consume configuration from <code>CallCredentials</code> objects.
+Note: experimental API that can change or be removed without any prior notice.</p>
+</div>
+  <div class="markdown level0 conceptual"></div>
+  <div class="inheritance">
+    <h5>Inheritance</h5>
+    <div class="level0"><span class="xref">System.Object</span></div>
+    <div class="level1"><span class="xref">ChannelCredentialsConfiguratorBase</span></div>
+  </div>
+  <div class="inheritedMembers">
+    <h5>Inherited Members</h5>
+    <div>
+      <span class="xref">System.Object.Equals(System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.GetHashCode()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.GetType()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.MemberwiseClone()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.ToString()</span>
+    </div>
+  </div>
+  <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
+  <h5 id="Grpc_Core_ChannelCredentialsConfiguratorBase_syntax">Syntax</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public abstract class ChannelCredentialsConfiguratorBase</code></pre>
+  </div>
+  <h3 id="methods">Methods
+  </h3>
+  <a id="Grpc_Core_ChannelCredentialsConfiguratorBase_SetCompositeCredentials_" data-uid="Grpc.Core.ChannelCredentialsConfiguratorBase.SetCompositeCredentials*"></a>
+  <h4 id="Grpc_Core_ChannelCredentialsConfiguratorBase_SetCompositeCredentials_System_Object_Grpc_Core_ChannelCredentials_Grpc_Core_CallCredentials_" data-uid="Grpc.Core.ChannelCredentialsConfiguratorBase.SetCompositeCredentials(System.Object,Grpc.Core.ChannelCredentials,Grpc.Core.CallCredentials)">SetCompositeCredentials(Object, ChannelCredentials, CallCredentials)</h4>
+  <div class="markdown level1 summary"><p>Configures the credentials to use composite channel credentials (a composite of channel credentials and call credentials).</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public abstract void SetCompositeCredentials(object state, ChannelCredentials channelCredentials, CallCredentials callCredentials)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Object</span></td>
+        <td><span class="parametername">state</span></td>
+        <td></td>
+      </tr>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.ChannelCredentials.html">ChannelCredentials</a></td>
+        <td><span class="parametername">channelCredentials</span></td>
+        <td></td>
+      </tr>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.CallCredentials.html">CallCredentials</a></td>
+        <td><span class="parametername">callCredentials</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <a id="Grpc_Core_ChannelCredentialsConfiguratorBase_SetInsecureCredentials_" data-uid="Grpc.Core.ChannelCredentialsConfiguratorBase.SetInsecureCredentials*"></a>
+  <h4 id="Grpc_Core_ChannelCredentialsConfiguratorBase_SetInsecureCredentials_System_Object_" data-uid="Grpc.Core.ChannelCredentialsConfiguratorBase.SetInsecureCredentials(System.Object)">SetInsecureCredentials(Object)</h4>
+  <div class="markdown level1 summary"><p>Configures the credentials to use insecure credentials.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public abstract void SetInsecureCredentials(object state)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Object</span></td>
+        <td><span class="parametername">state</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <a id="Grpc_Core_ChannelCredentialsConfiguratorBase_SetSslCredentials_" data-uid="Grpc.Core.ChannelCredentialsConfiguratorBase.SetSslCredentials*"></a>
+  <h4 id="Grpc_Core_ChannelCredentialsConfiguratorBase_SetSslCredentials_System_Object_System_String_Grpc_Core_KeyCertificatePair_Grpc_Core_VerifyPeerCallback_" data-uid="Grpc.Core.ChannelCredentialsConfiguratorBase.SetSslCredentials(System.Object,System.String,Grpc.Core.KeyCertificatePair,Grpc.Core.VerifyPeerCallback)">SetSslCredentials(Object, String, KeyCertificatePair, VerifyPeerCallback)</h4>
+  <div class="markdown level1 summary"><p>Configures the credentials to use <code>SslCredentials</code>.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public abstract void SetSslCredentials(object state, string rootCertificates, KeyCertificatePair keyCertificatePair, VerifyPeerCallback verifyPeerCallback)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Object</span></td>
+        <td><span class="parametername">state</span></td>
+        <td></td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.String</span></td>
+        <td><span class="parametername">rootCertificates</span></td>
+        <td></td>
+      </tr>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.KeyCertificatePair.html">KeyCertificatePair</a></td>
+        <td><span class="parametername">keyCertificatePair</span></td>
+        <td></td>
+      </tr>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.VerifyPeerCallback.html">VerifyPeerCallback</a></td>
+        <td><span class="parametername">verifyPeerCallback</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+</article>
+          </div>
+          
+          <div class="hidden-sm col-md-2" role="complementary">
+            <div class="sideaffix">
+              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
+              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+              </nav>
+            </div>
+          </div>
+        </div>
+      </div>
+      
+      <footer>
+        <div class="grad-bottom"></div>
+        <div class="footer">
+          <div class="container">
+            <span class="pull-right">
+              <a href="#top">Back to top</a>
+            </span>
+            
+            <span>Generated by <strong>DocFX</strong></span>
+          </div>
+        </div>
+      </footer>
+    </div>
+    
+    <script type="text/javascript" src="../styles/docfx.vendor.js"></script>
+    <script type="text/javascript" src="../styles/docfx.js"></script>
+    <script type="text/javascript" src="../styles/main.js"></script>
+  </body>
+</html>

+ 4 - 4
csharp/api/Grpc.Core.ClientBase-1.html

@@ -121,7 +121,7 @@
     </div>
     </div>
   </div>
   </div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_ClientBase_1_syntax">Syntax</h5>
   <h5 id="Grpc_Core_ClientBase_1_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public abstract class ClientBase&lt;T&gt; : ClientBase where T : ClientBase&lt;T&gt;</code></pre>
     <pre><code class="lang-csharp hljs">public abstract class ClientBase&lt;T&gt; : ClientBase where T : ClientBase&lt;T&gt;</code></pre>
@@ -183,13 +183,13 @@ for client classes (e.g. mocking requires a parameterless constructor).</p>
     </tbody>
     </tbody>
   </table>
   </table>
   <a id="Grpc_Core_ClientBase_1__ctor_" data-uid="Grpc.Core.ClientBase`1.#ctor*"></a>
   <a id="Grpc_Core_ClientBase_1__ctor_" data-uid="Grpc.Core.ClientBase`1.#ctor*"></a>
-  <h4 id="Grpc_Core_ClientBase_1__ctor_Grpc_Core_Channel_" data-uid="Grpc.Core.ClientBase`1.#ctor(Grpc.Core.Channel)">ClientBase(Channel)</h4>
+  <h4 id="Grpc_Core_ClientBase_1__ctor_Grpc_Core_ChannelBase_" data-uid="Grpc.Core.ClientBase`1.#ctor(Grpc.Core.ChannelBase)">ClientBase(ChannelBase)</h4>
   <div class="markdown level1 summary"><p>Initializes a new instance of <code>ClientBase</code> class.</p>
   <div class="markdown level1 summary"><p>Initializes a new instance of <code>ClientBase</code> class.</p>
 </div>
 </div>
   <div class="markdown level1 conceptual"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
   <div class="codewrapper">
-    <pre><code class="lang-csharp hljs">public ClientBase(Channel channel)</code></pre>
+    <pre><code class="lang-csharp hljs">public ClientBase(ChannelBase channel)</code></pre>
   </div>
   </div>
   <h5 class="parameters">Parameters</h5>
   <h5 class="parameters">Parameters</h5>
   <table class="table table-bordered table-striped table-condensed">
   <table class="table table-bordered table-striped table-condensed">
@@ -202,7 +202,7 @@ for client classes (e.g. mocking requires a parameterless constructor).</p>
     </thead>
     </thead>
     <tbody>
     <tbody>
       <tr>
       <tr>
-        <td><a class="xref" href="Grpc.Core.Channel.html">Channel</a></td>
+        <td><a class="xref" href="Grpc.Core.ChannelBase.html">ChannelBase</a></td>
         <td><span class="parametername">channel</span></td>
         <td><span class="parametername">channel</span></td>
         <td><p>The channel to use for remote call invocation.</p>
         <td><p>The channel to use for remote call invocation.</p>
 </td>
 </td>

+ 1 - 1
csharp/api/Grpc.Core.ClientBase.ClientBaseConfiguration.html

@@ -119,7 +119,7 @@ less likely.</p>
     </div>
     </div>
   </div>
   </div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_ClientBase_ClientBaseConfiguration_syntax">Syntax</h5>
   <h5 id="Grpc_Core_ClientBase_ClientBaseConfiguration_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">protected class ClientBaseConfiguration</code></pre>
     <pre><code class="lang-csharp hljs">protected class ClientBaseConfiguration</code></pre>

+ 4 - 4
csharp/api/Grpc.Core.ClientBase.html

@@ -117,7 +117,7 @@
     </div>
     </div>
   </div>
   </div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_ClientBase_syntax">Syntax</h5>
   <h5 id="Grpc_Core_ClientBase_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public abstract class ClientBase</code></pre>
     <pre><code class="lang-csharp hljs">public abstract class ClientBase</code></pre>
@@ -164,13 +164,13 @@ for client classes (e.g. mocking requires a parameterless constructor).</p>
     </tbody>
     </tbody>
   </table>
   </table>
   <a id="Grpc_Core_ClientBase__ctor_" data-uid="Grpc.Core.ClientBase.#ctor*"></a>
   <a id="Grpc_Core_ClientBase__ctor_" data-uid="Grpc.Core.ClientBase.#ctor*"></a>
-  <h4 id="Grpc_Core_ClientBase__ctor_Grpc_Core_Channel_" data-uid="Grpc.Core.ClientBase.#ctor(Grpc.Core.Channel)">ClientBase(Channel)</h4>
+  <h4 id="Grpc_Core_ClientBase__ctor_Grpc_Core_ChannelBase_" data-uid="Grpc.Core.ClientBase.#ctor(Grpc.Core.ChannelBase)">ClientBase(ChannelBase)</h4>
   <div class="markdown level1 summary"><p>Initializes a new instance of <code>ClientBase</code> class.</p>
   <div class="markdown level1 summary"><p>Initializes a new instance of <code>ClientBase</code> class.</p>
 </div>
 </div>
   <div class="markdown level1 conceptual"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
   <div class="codewrapper">
-    <pre><code class="lang-csharp hljs">public ClientBase(Channel channel)</code></pre>
+    <pre><code class="lang-csharp hljs">public ClientBase(ChannelBase channel)</code></pre>
   </div>
   </div>
   <h5 class="parameters">Parameters</h5>
   <h5 class="parameters">Parameters</h5>
   <table class="table table-bordered table-striped table-condensed">
   <table class="table table-bordered table-striped table-condensed">
@@ -183,7 +183,7 @@ for client classes (e.g. mocking requires a parameterless constructor).</p>
     </thead>
     </thead>
     <tbody>
     <tbody>
       <tr>
       <tr>
-        <td><a class="xref" href="Grpc.Core.Channel.html">Channel</a></td>
+        <td><a class="xref" href="Grpc.Core.ChannelBase.html">ChannelBase</a></td>
         <td><span class="parametername">channel</span></td>
         <td><span class="parametername">channel</span></td>
         <td><p>The channel to use for remote call invocation.</p>
         <td><p>The channel to use for remote call invocation.</p>
 </td>
 </td>

+ 0 - 10
csharp/api/Grpc.Core.DefaultCallInvoker.html

@@ -608,16 +608,6 @@ In server streaming scenario, client sends on request and server responds with a
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>
-  <h3 id="extensionmethods">Extension Methods</h3>
-  <div>
-      <a class="xref" href="Grpc.Core.Interceptors.CallInvokerExtensions.html#Grpc_Core_Interceptors_CallInvokerExtensions_Intercept_Grpc_Core_CallInvoker_Grpc_Core_Interceptors_Interceptor_">CallInvokerExtensions.Intercept(CallInvoker, Interceptor)</a>
-  </div>
-  <div>
-      <a class="xref" href="Grpc.Core.Interceptors.CallInvokerExtensions.html#Grpc_Core_Interceptors_CallInvokerExtensions_Intercept_Grpc_Core_CallInvoker_Grpc_Core_Interceptors_Interceptor___">CallInvokerExtensions.Intercept(CallInvoker, Interceptor[])</a>
-  </div>
-  <div>
-      <a class="xref" href="Grpc.Core.Interceptors.CallInvokerExtensions.html#Grpc_Core_Interceptors_CallInvokerExtensions_Intercept_Grpc_Core_CallInvoker_System_Func_Grpc_Core_Metadata_Grpc_Core_Metadata__">CallInvokerExtensions.Intercept(CallInvoker, Func&lt;Metadata, Metadata&gt;)</a>
-  </div>
 </article>
 </article>
           </div>
           </div>
           
           

+ 32 - 1
csharp/api/Grpc.Core.DeserializationContext.html

@@ -159,7 +159,7 @@ In particular, using this method usually requires copying of the entire buffer o
 Also, allocating a new buffer each time can put excessive pressure on GC, especially if
 Also, allocating a new buffer each time can put excessive pressure on GC, especially if
 the payload is more than 86700 bytes large (which means the newly allocated buffer will be placed in LOH,
 the payload is more than 86700 bytes large (which means the newly allocated buffer will be placed in LOH,
 and LOH object can only be garbage collected via a full (&quot;stop the world&quot;) GC run).
 and LOH object can only be garbage collected via a full (&quot;stop the world&quot;) GC run).
-NOTE: Deserializers are expected not to call this method more than once per received message
+NOTE: Deserializers are expected not to call this method (or other payload accessor methods) more than once per received message
 (as there is no practical reason for doing so) and <code>DeserializationContext</code> implementations are free to assume so.</p>
 (as there is no practical reason for doing so) and <code>DeserializationContext</code> implementations are free to assume so.</p>
 </div>
 </div>
   <div class="markdown level1 conceptual"></div>
   <div class="markdown level1 conceptual"></div>
@@ -179,6 +179,37 @@ NOTE: Deserializers are expected not to call this method more than once per rece
       <tr>
       <tr>
         <td><span class="xref">System.Byte</span>[]</td>
         <td><span class="xref">System.Byte</span>[]</td>
         <td><p>byte array containing the entire payload.</p>
         <td><p>byte array containing the entire payload.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <a id="Grpc_Core_DeserializationContext_PayloadAsReadOnlySequence_" data-uid="Grpc.Core.DeserializationContext.PayloadAsReadOnlySequence*"></a>
+  <h4 id="Grpc_Core_DeserializationContext_PayloadAsReadOnlySequence" data-uid="Grpc.Core.DeserializationContext.PayloadAsReadOnlySequence">PayloadAsReadOnlySequence()</h4>
+  <div class="markdown level1 summary"><p>Gets the entire payload as a ReadOnlySequence.
+The ReadOnlySequence is only valid for the duration of the deserializer routine and the caller must not access it after the deserializer returns.
+Using the read only sequence is the most efficient way to access the message payload. Where possible it allows directly
+accessing the received payload without needing to perform any buffer copying or buffer allocations.
+NOTE: When using this method, it is recommended to use C# 7.2 compiler to make it more useful (using Span type directly from your code requires C# 7.2).&quot;
+NOTE: Deserializers are expected not to call this method (or other payload accessor methods) more than once per received message
+(as there is no practical reason for doing so) and <code>DeserializationContext</code> implementations are free to assume so.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public virtual Buffers.ReadOnlySequence&lt;byte&gt; PayloadAsReadOnlySequence()</code></pre>
+  </div>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Buffers.ReadOnlySequence</span>&lt;<span class="xref">System.Byte</span>&gt;</td>
+        <td><p>read only sequence containing the entire payload.</p>
 </td>
 </td>
       </tr>
       </tr>
     </tbody>
     </tbody>

+ 73 - 1
csharp/api/Grpc.Core.IAsyncStreamReader-1.html

@@ -112,7 +112,7 @@ yet.
   <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_IAsyncStreamReader_1_syntax">Syntax</h5>
   <h5 id="Grpc_Core_IAsyncStreamReader_1_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
-    <pre><code class="lang-csharp hljs">public interface IAsyncStreamReader&lt;T&gt; : IAsyncEnumerator&lt;T&gt;</code></pre>
+    <pre><code class="lang-csharp hljs">public interface IAsyncStreamReader&lt;T&gt;</code></pre>
   </div>
   </div>
   <h5 class="typeParameters">Type Parameters</h5>
   <h5 class="typeParameters">Type Parameters</h5>
   <table class="table table-bordered table-striped table-condensed">
   <table class="table table-bordered table-striped table-condensed">
@@ -126,6 +126,78 @@ yet.
       <tr>
       <tr>
         <td><span class="parametername">T</span></td>
         <td><span class="parametername">T</span></td>
         <td><p>The message type.</p>
         <td><p>The message type.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <h3 id="properties">Properties
+  </h3>
+  <a id="Grpc_Core_IAsyncStreamReader_1_Current_" data-uid="Grpc.Core.IAsyncStreamReader`1.Current*"></a>
+  <h4 id="Grpc_Core_IAsyncStreamReader_1_Current" data-uid="Grpc.Core.IAsyncStreamReader`1.Current">Current</h4>
+  <div class="markdown level1 summary"><p>Gets the current element in the iteration.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">T Current { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">T</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h3 id="methods">Methods
+  </h3>
+  <a id="Grpc_Core_IAsyncStreamReader_1_MoveNext_" data-uid="Grpc.Core.IAsyncStreamReader`1.MoveNext*"></a>
+  <h4 id="Grpc_Core_IAsyncStreamReader_1_MoveNext_System_Threading_CancellationToken_" data-uid="Grpc.Core.IAsyncStreamReader`1.MoveNext(System.Threading.CancellationToken)">MoveNext(CancellationToken)</h4>
+  <div class="markdown level1 summary"><p>Advances the reader to the next element in the sequence, returning the result asynchronously.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">Task&lt;bool&gt; MoveNext(CancellationToken cancellationToken)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Threading.CancellationToken</span></td>
+        <td><span class="parametername">cancellationToken</span></td>
+        <td><p>Cancellation token that can be used to cancel the operation.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Threading.Tasks.Task</span>&lt;<span class="xref">System.Boolean</span>&gt;</td>
+        <td><p>Task containing the result of the operation: true if the reader was successfully advanced
+to the next element; false if the reader has passed the end of the sequence.</p>
 </td>
 </td>
       </tr>
       </tr>
     </tbody>
     </tbody>

+ 1 - 1
csharp/api/Grpc.Core.IClientStreamWriter-1.html

@@ -96,7 +96,7 @@
     </div>
     </div>
   </div>
   </div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_IClientStreamWriter_1_syntax">Syntax</h5>
   <h5 id="Grpc_Core_IClientStreamWriter_1_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public interface IClientStreamWriter&lt;T&gt; : IAsyncStreamWriter&lt;T&gt;</code></pre>
     <pre><code class="lang-csharp hljs">public interface IClientStreamWriter&lt;T&gt; : IAsyncStreamWriter&lt;T&gt;</code></pre>

+ 1 - 1
csharp/api/Grpc.Core.Interceptors.CallInvokerExtensions.html

@@ -116,7 +116,7 @@
     </div>
     </div>
   </div>
   </div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.Interceptors.html">Grpc.Core.Interceptors</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.Interceptors.html">Grpc.Core.Interceptors</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_Interceptors_CallInvokerExtensions_syntax">Syntax</h5>
   <h5 id="Grpc_Core_Interceptors_CallInvokerExtensions_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public static class CallInvokerExtensions</code></pre>
     <pre><code class="lang-csharp hljs">public static class CallInvokerExtensions</code></pre>

+ 13 - 13
csharp/api/Grpc.Core.Interceptors.ChannelExtensions.html

@@ -116,7 +116,7 @@
     </div>
     </div>
   </div>
   </div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.Interceptors.html">Grpc.Core.Interceptors</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.Interceptors.html">Grpc.Core.Interceptors</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_Interceptors_ChannelExtensions_syntax">Syntax</h5>
   <h5 id="Grpc_Core_Interceptors_ChannelExtensions_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public static class ChannelExtensions</code></pre>
     <pre><code class="lang-csharp hljs">public static class ChannelExtensions</code></pre>
@@ -124,14 +124,14 @@
   <h3 id="methods">Methods
   <h3 id="methods">Methods
   </h3>
   </h3>
   <a id="Grpc_Core_Interceptors_ChannelExtensions_Intercept_" data-uid="Grpc.Core.Interceptors.ChannelExtensions.Intercept*"></a>
   <a id="Grpc_Core_Interceptors_ChannelExtensions_Intercept_" data-uid="Grpc.Core.Interceptors.ChannelExtensions.Intercept*"></a>
-  <h4 id="Grpc_Core_Interceptors_ChannelExtensions_Intercept_Grpc_Core_Channel_Grpc_Core_Interceptors_Interceptor_" data-uid="Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.Channel,Grpc.Core.Interceptors.Interceptor)">Intercept(Channel, Interceptor)</h4>
+  <h4 id="Grpc_Core_Interceptors_ChannelExtensions_Intercept_Grpc_Core_ChannelBase_Grpc_Core_Interceptors_Interceptor_" data-uid="Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.ChannelBase,Grpc.Core.Interceptors.Interceptor)">Intercept(ChannelBase, Interceptor)</h4>
   <div class="markdown level1 summary"><p>Returns a <a class="xref" href="Grpc.Core.CallInvoker.html">CallInvoker</a> instance that intercepts
   <div class="markdown level1 summary"><p>Returns a <a class="xref" href="Grpc.Core.CallInvoker.html">CallInvoker</a> instance that intercepts
 the channel with the given interceptor.</p>
 the channel with the given interceptor.</p>
 </div>
 </div>
   <div class="markdown level1 conceptual"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
   <div class="codewrapper">
-    <pre><code class="lang-csharp hljs">public static CallInvoker Intercept(this Channel channel, Interceptor interceptor)</code></pre>
+    <pre><code class="lang-csharp hljs">public static CallInvoker Intercept(this ChannelBase channel, Interceptor interceptor)</code></pre>
   </div>
   </div>
   <h5 class="parameters">Parameters</h5>
   <h5 class="parameters">Parameters</h5>
   <table class="table table-bordered table-striped table-condensed">
   <table class="table table-bordered table-striped table-condensed">
@@ -144,7 +144,7 @@ the channel with the given interceptor.</p>
     </thead>
     </thead>
     <tbody>
     <tbody>
       <tr>
       <tr>
-        <td><a class="xref" href="Grpc.Core.Channel.html">Channel</a></td>
+        <td><a class="xref" href="Grpc.Core.ChannelBase.html">ChannelBase</a></td>
         <td><span class="parametername">channel</span></td>
         <td><span class="parametername">channel</span></td>
         <td><p>The channel to intercept.</p>
         <td><p>The channel to intercept.</p>
 </td>
 </td>
@@ -172,7 +172,7 @@ the channel with the given interceptor.</p>
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>
-  <h5 id="Grpc_Core_Interceptors_ChannelExtensions_Intercept_Grpc_Core_Channel_Grpc_Core_Interceptors_Interceptor__remarks">Remarks</h5>
+  <h5 id="Grpc_Core_Interceptors_ChannelExtensions_Intercept_Grpc_Core_ChannelBase_Grpc_Core_Interceptors_Interceptor__remarks">Remarks</h5>
   <div class="markdown level1 remarks"><p>Multiple interceptors can be added on top of each other by calling
   <div class="markdown level1 remarks"><p>Multiple interceptors can be added on top of each other by calling
 &quot;channel.Intercept(a, b, c)&quot;.  The order of invocation will be &quot;a&quot;, &quot;b&quot;, and then &quot;c&quot;.
 &quot;channel.Intercept(a, b, c)&quot;.  The order of invocation will be &quot;a&quot;, &quot;b&quot;, and then &quot;c&quot;.
 Interceptors can be later added to an existing intercepted channel, effectively
 Interceptors can be later added to an existing intercepted channel, effectively
@@ -180,14 +180,14 @@ building a chain like &quot;channel.Intercept(c).Intercept(b).Intercept(a)&quot;
 in this case, the last interceptor added will be the first to take control.</p>
 in this case, the last interceptor added will be the first to take control.</p>
 </div>
 </div>
   <a id="Grpc_Core_Interceptors_ChannelExtensions_Intercept_" data-uid="Grpc.Core.Interceptors.ChannelExtensions.Intercept*"></a>
   <a id="Grpc_Core_Interceptors_ChannelExtensions_Intercept_" data-uid="Grpc.Core.Interceptors.ChannelExtensions.Intercept*"></a>
-  <h4 id="Grpc_Core_Interceptors_ChannelExtensions_Intercept_Grpc_Core_Channel_Grpc_Core_Interceptors_Interceptor___" data-uid="Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.Channel,Grpc.Core.Interceptors.Interceptor[])">Intercept(Channel, Interceptor[])</h4>
+  <h4 id="Grpc_Core_Interceptors_ChannelExtensions_Intercept_Grpc_Core_ChannelBase_Grpc_Core_Interceptors_Interceptor___" data-uid="Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.ChannelBase,Grpc.Core.Interceptors.Interceptor[])">Intercept(ChannelBase, Interceptor[])</h4>
   <div class="markdown level1 summary"><p>Returns a <a class="xref" href="Grpc.Core.CallInvoker.html">CallInvoker</a> instance that intercepts
   <div class="markdown level1 summary"><p>Returns a <a class="xref" href="Grpc.Core.CallInvoker.html">CallInvoker</a> instance that intercepts
 the channel with the given interceptors.</p>
 the channel with the given interceptors.</p>
 </div>
 </div>
   <div class="markdown level1 conceptual"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
   <div class="codewrapper">
-    <pre><code class="lang-csharp hljs">public static CallInvoker Intercept(this Channel channel, params Interceptor[] interceptors)</code></pre>
+    <pre><code class="lang-csharp hljs">public static CallInvoker Intercept(this ChannelBase channel, params Interceptor[] interceptors)</code></pre>
   </div>
   </div>
   <h5 class="parameters">Parameters</h5>
   <h5 class="parameters">Parameters</h5>
   <table class="table table-bordered table-striped table-condensed">
   <table class="table table-bordered table-striped table-condensed">
@@ -200,7 +200,7 @@ the channel with the given interceptors.</p>
     </thead>
     </thead>
     <tbody>
     <tbody>
       <tr>
       <tr>
-        <td><a class="xref" href="Grpc.Core.Channel.html">Channel</a></td>
+        <td><a class="xref" href="Grpc.Core.ChannelBase.html">ChannelBase</a></td>
         <td><span class="parametername">channel</span></td>
         <td><span class="parametername">channel</span></td>
         <td><p>The channel to intercept.</p>
         <td><p>The channel to intercept.</p>
 </td>
 </td>
@@ -229,7 +229,7 @@ Control is passed to the interceptors in the order specified.</p>
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>
-  <h5 id="Grpc_Core_Interceptors_ChannelExtensions_Intercept_Grpc_Core_Channel_Grpc_Core_Interceptors_Interceptor____remarks">Remarks</h5>
+  <h5 id="Grpc_Core_Interceptors_ChannelExtensions_Intercept_Grpc_Core_ChannelBase_Grpc_Core_Interceptors_Interceptor____remarks">Remarks</h5>
   <div class="markdown level1 remarks"><p>Multiple interceptors can be added on top of each other by calling
   <div class="markdown level1 remarks"><p>Multiple interceptors can be added on top of each other by calling
 &quot;channel.Intercept(a, b, c)&quot;.  The order of invocation will be &quot;a&quot;, &quot;b&quot;, and then &quot;c&quot;.
 &quot;channel.Intercept(a, b, c)&quot;.  The order of invocation will be &quot;a&quot;, &quot;b&quot;, and then &quot;c&quot;.
 Interceptors can be later added to an existing intercepted channel, effectively
 Interceptors can be later added to an existing intercepted channel, effectively
@@ -237,14 +237,14 @@ building a chain like &quot;channel.Intercept(c).Intercept(b).Intercept(a)&quot;
 in this case, the last interceptor added will be the first to take control.</p>
 in this case, the last interceptor added will be the first to take control.</p>
 </div>
 </div>
   <a id="Grpc_Core_Interceptors_ChannelExtensions_Intercept_" data-uid="Grpc.Core.Interceptors.ChannelExtensions.Intercept*"></a>
   <a id="Grpc_Core_Interceptors_ChannelExtensions_Intercept_" data-uid="Grpc.Core.Interceptors.ChannelExtensions.Intercept*"></a>
-  <h4 id="Grpc_Core_Interceptors_ChannelExtensions_Intercept_Grpc_Core_Channel_System_Func_Grpc_Core_Metadata_Grpc_Core_Metadata__" data-uid="Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.Channel,System.Func{Grpc.Core.Metadata,Grpc.Core.Metadata})">Intercept(Channel, Func&lt;Metadata, Metadata&gt;)</h4>
+  <h4 id="Grpc_Core_Interceptors_ChannelExtensions_Intercept_Grpc_Core_ChannelBase_System_Func_Grpc_Core_Metadata_Grpc_Core_Metadata__" data-uid="Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.ChannelBase,System.Func{Grpc.Core.Metadata,Grpc.Core.Metadata})">Intercept(ChannelBase, Func&lt;Metadata, Metadata&gt;)</h4>
   <div class="markdown level1 summary"><p>Returns a <a class="xref" href="Grpc.Core.CallInvoker.html">CallInvoker</a> instance that intercepts
   <div class="markdown level1 summary"><p>Returns a <a class="xref" href="Grpc.Core.CallInvoker.html">CallInvoker</a> instance that intercepts
 the invoker with the given interceptor.</p>
 the invoker with the given interceptor.</p>
 </div>
 </div>
   <div class="markdown level1 conceptual"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
   <div class="codewrapper">
-    <pre><code class="lang-csharp hljs">public static CallInvoker Intercept(this Channel channel, Func&lt;Metadata, Metadata&gt; interceptor)</code></pre>
+    <pre><code class="lang-csharp hljs">public static CallInvoker Intercept(this ChannelBase channel, Func&lt;Metadata, Metadata&gt; interceptor)</code></pre>
   </div>
   </div>
   <h5 class="parameters">Parameters</h5>
   <h5 class="parameters">Parameters</h5>
   <table class="table table-bordered table-striped table-condensed">
   <table class="table table-bordered table-striped table-condensed">
@@ -257,7 +257,7 @@ the invoker with the given interceptor.</p>
     </thead>
     </thead>
     <tbody>
     <tbody>
       <tr>
       <tr>
-        <td><a class="xref" href="Grpc.Core.Channel.html">Channel</a></td>
+        <td><a class="xref" href="Grpc.Core.ChannelBase.html">ChannelBase</a></td>
         <td><span class="parametername">channel</span></td>
         <td><span class="parametername">channel</span></td>
         <td><p>The channel to intercept.</p>
         <td><p>The channel to intercept.</p>
 </td>
 </td>
@@ -287,7 +287,7 @@ invocation metadata.</p>
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>
-  <h5 id="Grpc_Core_Interceptors_ChannelExtensions_Intercept_Grpc_Core_Channel_System_Func_Grpc_Core_Metadata_Grpc_Core_Metadata___remarks">Remarks</h5>
+  <h5 id="Grpc_Core_Interceptors_ChannelExtensions_Intercept_Grpc_Core_ChannelBase_System_Func_Grpc_Core_Metadata_Grpc_Core_Metadata___remarks">Remarks</h5>
   <div class="markdown level1 remarks"><p>Multiple interceptors can be added on top of each other by
   <div class="markdown level1 remarks"><p>Multiple interceptors can be added on top of each other by
 building a chain like &quot;channel.Intercept(c).Intercept(b).Intercept(a)&quot;.  Note that
 building a chain like &quot;channel.Intercept(c).Intercept(b).Intercept(a)&quot;.  Note that
 in this case, the last interceptor added will be the first to take control.</p>
 in this case, the last interceptor added will be the first to take control.</p>

+ 1 - 1
csharp/api/Grpc.Core.Interceptors.ClientInterceptorContext-2.html

@@ -108,7 +108,7 @@
     </div>
     </div>
   </div>
   </div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.Interceptors.html">Grpc.Core.Interceptors</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.Interceptors.html">Grpc.Core.Interceptors</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_Interceptors_ClientInterceptorContext_2_syntax">Syntax</h5>
   <h5 id="Grpc_Core_Interceptors_ClientInterceptorContext_2_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public struct ClientInterceptorContext&lt;TRequest, TResponse&gt;
     <pre><code class="lang-csharp hljs">public struct ClientInterceptorContext&lt;TRequest, TResponse&gt;

+ 1 - 1
csharp/api/Grpc.Core.Interceptors.Interceptor.AsyncClientStreamingCallContinuation-2.html

@@ -93,7 +93,7 @@ request value and context as it sees fit.</p>
 </div>
 </div>
   <div class="markdown level0 conceptual"></div>
   <div class="markdown level0 conceptual"></div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.Interceptors.html">Grpc.Core.Interceptors</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.Interceptors.html">Grpc.Core.Interceptors</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_Interceptors_Interceptor_AsyncClientStreamingCallContinuation_2_syntax">Syntax</h5>
   <h5 id="Grpc_Core_Interceptors_Interceptor_AsyncClientStreamingCallContinuation_2_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public delegate AsyncClientStreamingCall&lt;TRequest, TResponse&gt; AsyncClientStreamingCallContinuation&lt;TRequest, TResponse&gt;(ClientInterceptorContext&lt;TRequest, TResponse&gt; context)
     <pre><code class="lang-csharp hljs">public delegate AsyncClientStreamingCall&lt;TRequest, TResponse&gt; AsyncClientStreamingCallContinuation&lt;TRequest, TResponse&gt;(ClientInterceptorContext&lt;TRequest, TResponse&gt; context)

+ 1 - 1
csharp/api/Grpc.Core.Interceptors.Interceptor.AsyncDuplexStreamingCallContinuation-2.html

@@ -93,7 +93,7 @@ request value and context as it sees fit.</p>
 </div>
 </div>
   <div class="markdown level0 conceptual"></div>
   <div class="markdown level0 conceptual"></div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.Interceptors.html">Grpc.Core.Interceptors</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.Interceptors.html">Grpc.Core.Interceptors</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_Interceptors_Interceptor_AsyncDuplexStreamingCallContinuation_2_syntax">Syntax</h5>
   <h5 id="Grpc_Core_Interceptors_Interceptor_AsyncDuplexStreamingCallContinuation_2_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public delegate AsyncDuplexStreamingCall&lt;TRequest, TResponse&gt; AsyncDuplexStreamingCallContinuation&lt;TRequest, TResponse&gt;(ClientInterceptorContext&lt;TRequest, TResponse&gt; context)
     <pre><code class="lang-csharp hljs">public delegate AsyncDuplexStreamingCall&lt;TRequest, TResponse&gt; AsyncDuplexStreamingCallContinuation&lt;TRequest, TResponse&gt;(ClientInterceptorContext&lt;TRequest, TResponse&gt; context)

+ 1 - 1
csharp/api/Grpc.Core.Interceptors.Interceptor.AsyncServerStreamingCallContinuation-2.html

@@ -93,7 +93,7 @@ request value and context as it sees fit.</p>
 </div>
 </div>
   <div class="markdown level0 conceptual"></div>
   <div class="markdown level0 conceptual"></div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.Interceptors.html">Grpc.Core.Interceptors</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.Interceptors.html">Grpc.Core.Interceptors</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_Interceptors_Interceptor_AsyncServerStreamingCallContinuation_2_syntax">Syntax</h5>
   <h5 id="Grpc_Core_Interceptors_Interceptor_AsyncServerStreamingCallContinuation_2_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public delegate AsyncServerStreamingCall&lt;TResponse&gt; AsyncServerStreamingCallContinuation&lt;TRequest, TResponse&gt;(TRequest request, ClientInterceptorContext&lt;TRequest, TResponse&gt; context)
     <pre><code class="lang-csharp hljs">public delegate AsyncServerStreamingCall&lt;TResponse&gt; AsyncServerStreamingCallContinuation&lt;TRequest, TResponse&gt;(TRequest request, ClientInterceptorContext&lt;TRequest, TResponse&gt; context)

+ 1 - 1
csharp/api/Grpc.Core.Interceptors.Interceptor.AsyncUnaryCallContinuation-2.html

@@ -93,7 +93,7 @@ request value and context as it sees fit.</p>
 </div>
 </div>
   <div class="markdown level0 conceptual"></div>
   <div class="markdown level0 conceptual"></div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.Interceptors.html">Grpc.Core.Interceptors</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.Interceptors.html">Grpc.Core.Interceptors</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_Interceptors_Interceptor_AsyncUnaryCallContinuation_2_syntax">Syntax</h5>
   <h5 id="Grpc_Core_Interceptors_Interceptor_AsyncUnaryCallContinuation_2_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public delegate AsyncUnaryCall&lt;TResponse&gt; AsyncUnaryCallContinuation&lt;TRequest, TResponse&gt;(TRequest request, ClientInterceptorContext&lt;TRequest, TResponse&gt; context)
     <pre><code class="lang-csharp hljs">public delegate AsyncUnaryCall&lt;TResponse&gt; AsyncUnaryCallContinuation&lt;TRequest, TResponse&gt;(TRequest request, ClientInterceptorContext&lt;TRequest, TResponse&gt; context)

+ 1 - 1
csharp/api/Grpc.Core.Interceptors.Interceptor.BlockingUnaryCallContinuation-2.html

@@ -93,7 +93,7 @@ context and request values as it sees fit.</p>
 </div>
 </div>
   <div class="markdown level0 conceptual"></div>
   <div class="markdown level0 conceptual"></div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.Interceptors.html">Grpc.Core.Interceptors</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.Interceptors.html">Grpc.Core.Interceptors</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_Interceptors_Interceptor_BlockingUnaryCallContinuation_2_syntax">Syntax</h5>
   <h5 id="Grpc_Core_Interceptors_Interceptor_BlockingUnaryCallContinuation_2_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public delegate TResponse BlockingUnaryCallContinuation&lt;TRequest, TResponse&gt;(TRequest request, ClientInterceptorContext&lt;TRequest, TResponse&gt; context)
     <pre><code class="lang-csharp hljs">public delegate TResponse BlockingUnaryCallContinuation&lt;TRequest, TResponse&gt;(TRequest request, ClientInterceptorContext&lt;TRequest, TResponse&gt; context)

+ 1 - 1
csharp/api/Grpc.Core.Interceptors.Interceptor.html

@@ -116,7 +116,7 @@
     </div>
     </div>
   </div>
   </div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.Interceptors.html">Grpc.Core.Interceptors</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.Interceptors.html">Grpc.Core.Interceptors</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_Interceptors_Interceptor_syntax">Syntax</h5>
   <h5 id="Grpc_Core_Interceptors_Interceptor_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public abstract class Interceptor</code></pre>
     <pre><code class="lang-csharp hljs">public abstract class Interceptor</code></pre>

+ 1 - 1
csharp/api/Grpc.Core.KeyCertificatePair.html

@@ -116,7 +116,7 @@
     </div>
     </div>
   </div>
   </div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_KeyCertificatePair_syntax">Syntax</h5>
   <h5 id="Grpc_Core_KeyCertificatePair_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public sealed class KeyCertificatePair</code></pre>
     <pre><code class="lang-csharp hljs">public sealed class KeyCertificatePair</code></pre>

+ 226 - 0
csharp/api/Grpc.Core.LiteClientBase.html

@@ -0,0 +1,226 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Class LiteClientBase
+   | gRPC C# </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Class LiteClientBase
+   | gRPC C# ">
+    <meta name="generator" content="docfx 2.36.0.0">
+    
+    <link rel="shortcut icon" href="../favicon.ico">
+    <link rel="stylesheet" href="../styles/docfx.vendor.css">
+    <link rel="stylesheet" href="../styles/docfx.css">
+    <link rel="stylesheet" href="../styles/main.css">
+    <meta property="docfx:navrel" content="../toc.html">
+    <meta property="docfx:tocrel" content="toc.html">
+    
+    <meta property="docfx:rel" content="../">
+    
+  </head>
+  <body data-spy="scroll" data-target="#affix" data-offset="120">
+    <div id="wrapper">
+      <header>
+        
+        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
+          <div class="container">
+            <div class="navbar-header">
+              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+              </button>
+              
+              <a class="navbar-brand" href="../index.html">
+                <img id="logo" class="svg" src="../logo.svg" alt="">
+              </a>
+            </div>
+            <div class="collapse navbar-collapse" id="navbar">
+              <form class="navbar-form navbar-right" role="search" id="search">
+                <div class="form-group">
+                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
+                </div>
+              </form>
+            </div>
+          </div>
+        </nav>
+        
+        <div class="subnav navbar navbar-default">
+          <div class="container hide-when-search" id="breadcrumb">
+            <ul class="breadcrumb">
+              <li></li>
+            </ul>
+          </div>
+        </div>
+      </header>
+      <div class="container body-content">
+        
+        <div id="search-results">
+          <div class="search-list"></div>
+          <div class="sr-items">
+            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
+          </div>
+          <ul id="pagination"></ul>
+        </div>
+      </div>
+      <div role="main" class="container body-content hide-when-search">
+        
+        <div class="sidenav hide-when-search">
+          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
+          <div class="sidetoggle collapse" id="sidetoggle">
+            <div id="sidetoc"></div>
+          </div>
+        </div>
+        <div class="article row grid-right">
+          <div class="col-md-10">
+            <article class="content wrap" id="_content" data-uid="Grpc.Core.LiteClientBase">
+  
+  
+  <h1 id="Grpc_Core_LiteClientBase" data-uid="Grpc.Core.LiteClientBase" class="text-break">Class LiteClientBase
+  </h1>
+  <div class="markdown level0 summary"><p>Base class for lightweight client-side stubs.
+All calls are invoked via a <code>CallInvoker</code>.
+Lite client stubs have no configuration knobs, all configuration
+is provided by decorating the call invoker.
+Note: experimental API that can change or be removed without any prior notice.</p>
+</div>
+  <div class="markdown level0 conceptual"></div>
+  <div class="inheritance">
+    <h5>Inheritance</h5>
+    <div class="level0"><span class="xref">System.Object</span></div>
+    <div class="level1"><span class="xref">LiteClientBase</span></div>
+  </div>
+  <div class="inheritedMembers">
+    <h5>Inherited Members</h5>
+    <div>
+      <span class="xref">System.Object.Equals(System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.GetHashCode()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.GetType()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.MemberwiseClone()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.ToString()</span>
+    </div>
+  </div>
+  <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
+  <h5 id="Grpc_Core_LiteClientBase_syntax">Syntax</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public abstract class LiteClientBase</code></pre>
+  </div>
+  <h3 id="constructors">Constructors
+  </h3>
+  <a id="Grpc_Core_LiteClientBase__ctor_" data-uid="Grpc.Core.LiteClientBase.#ctor*"></a>
+  <h4 id="Grpc_Core_LiteClientBase__ctor" data-uid="Grpc.Core.LiteClientBase.#ctor">LiteClientBase()</h4>
+  <div class="markdown level1 summary"><p>Initializes a new instance of <code>LiteClientBase</code> class that
+throws <code>NotImplementedException</code> upon invocation of any RPC.
+This constructor is only provided to allow creation of test doubles
+for client classes (e.g. mocking requires a parameterless constructor).</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">protected LiteClientBase()</code></pre>
+  </div>
+  <a id="Grpc_Core_LiteClientBase__ctor_" data-uid="Grpc.Core.LiteClientBase.#ctor*"></a>
+  <h4 id="Grpc_Core_LiteClientBase__ctor_Grpc_Core_CallInvoker_" data-uid="Grpc.Core.LiteClientBase.#ctor(Grpc.Core.CallInvoker)">LiteClientBase(CallInvoker)</h4>
+  <div class="markdown level1 summary"><p>Initializes a new instance of <code>ClientBase</code> class.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public LiteClientBase(CallInvoker callInvoker)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.CallInvoker.html">CallInvoker</a></td>
+        <td><span class="parametername">callInvoker</span></td>
+        <td><p>The <code>CallInvoker</code> for remote call invocation.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <h3 id="properties">Properties
+  </h3>
+  <a id="Grpc_Core_LiteClientBase_CallInvoker_" data-uid="Grpc.Core.LiteClientBase.CallInvoker*"></a>
+  <h4 id="Grpc_Core_LiteClientBase_CallInvoker" data-uid="Grpc.Core.LiteClientBase.CallInvoker">CallInvoker</h4>
+  <div class="markdown level1 summary"><p>Gets the call invoker.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">protected CallInvoker CallInvoker { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.CallInvoker.html">CallInvoker</a></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+</article>
+          </div>
+          
+          <div class="hidden-sm col-md-2" role="complementary">
+            <div class="sideaffix">
+              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
+              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+              </nav>
+            </div>
+          </div>
+        </div>
+      </div>
+      
+      <footer>
+        <div class="grad-bottom"></div>
+        <div class="footer">
+          <div class="container">
+            <span class="pull-right">
+              <a href="#top">Back to top</a>
+            </span>
+            
+            <span>Generated by <strong>DocFX</strong></span>
+          </div>
+        </div>
+      </footer>
+    </div>
+    
+    <script type="text/javascript" src="../styles/docfx.vendor.js"></script>
+    <script type="text/javascript" src="../styles/docfx.js"></script>
+    <script type="text/javascript" src="../styles/main.js"></script>
+  </body>
+</html>

+ 49 - 0
csharp/api/Grpc.Core.ServerCallContext.html

@@ -567,6 +567,55 @@ Note: Access to AuthContext is an experimental API that can change without any p
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>
+  <a id="Grpc_Core_ServerCallContext_UserState_" data-uid="Grpc.Core.ServerCallContext.UserState*"></a>
+  <h4 id="Grpc_Core_ServerCallContext_UserState" data-uid="Grpc.Core.ServerCallContext.UserState">UserState</h4>
+  <div class="markdown level1 summary"><p>Gets a dictionary that can be used by the various interceptors and handlers of this
+call to store arbitrary state.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public IDictionary&lt;object, object&gt; UserState { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Collections.Generic.IDictionary</span>&lt;<span class="xref">System.Object</span>, <span class="xref">System.Object</span>&gt;</td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <a id="Grpc_Core_ServerCallContext_UserStateCore_" data-uid="Grpc.Core.ServerCallContext.UserStateCore*"></a>
+  <h4 id="Grpc_Core_ServerCallContext_UserStateCore" data-uid="Grpc.Core.ServerCallContext.UserStateCore">UserStateCore</h4>
+  <div class="markdown level1 summary"><p>Provides implementation of a non-virtual public member.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">protected virtual IDictionary&lt;object, object&gt; UserStateCore { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Collections.Generic.IDictionary</span>&lt;<span class="xref">System.Object</span>, <span class="xref">System.Object</span>&gt;</td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
   <a id="Grpc_Core_ServerCallContext_WriteOptions_" data-uid="Grpc.Core.ServerCallContext.WriteOptions*"></a>
   <a id="Grpc_Core_ServerCallContext_WriteOptions_" data-uid="Grpc.Core.ServerCallContext.WriteOptions*"></a>
   <h4 id="Grpc_Core_ServerCallContext_WriteOptions" data-uid="Grpc.Core.ServerCallContext.WriteOptions">WriteOptions</h4>
   <h4 id="Grpc_Core_ServerCallContext_WriteOptions" data-uid="Grpc.Core.ServerCallContext.WriteOptions">WriteOptions</h4>
   <div class="markdown level1 summary"><p>Allows setting write options for the following write.
   <div class="markdown level1 summary"><p>Allows setting write options for the following write.

+ 1 - 1
csharp/api/Grpc.Core.SslClientCertificateRequestType.html

@@ -115,7 +115,7 @@ present a certificate at all and any of those option would be accepted)</p>
         <td id="Grpc_Core_SslClientCertificateRequestType_RequestAndRequireAndVerify">RequestAndRequireAndVerify</td>
         <td id="Grpc_Core_SslClientCertificateRequestType_RequestAndRequireAndVerify">RequestAndRequireAndVerify</td>
         <td><p>Server requests client certificate and enforces that the client presents a
         <td><p>Server requests client certificate and enforces that the client presents a
 certificate.
 certificate.
-The cerificate presented by the client is verified by the gRPC framework.
+The certificate presented by the client is verified by the gRPC framework.
 (For a successful connection the client needs to present a certificate that
 (For a successful connection the client needs to present a certificate that
 can be verified against the root certificate configured by the server)
 can be verified against the root certificate configured by the server)
 The client&apos;s key certificate pair must be valid for the SSL connection to
 The client&apos;s key certificate pair must be valid for the SSL connection to

+ 76 - 1
csharp/api/Grpc.Core.SslCredentials.html

@@ -123,7 +123,7 @@
     </div>
     </div>
   </div>
   </div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_SslCredentials_syntax">Syntax</h5>
   <h5 id="Grpc_Core_SslCredentials_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public sealed class SslCredentials : ChannelCredentials</code></pre>
     <pre><code class="lang-csharp hljs">public sealed class SslCredentials : ChannelCredentials</code></pre>
@@ -197,6 +197,45 @@ a string containing PEM encoded root certificates.</p>
         <td><a class="xref" href="Grpc.Core.KeyCertificatePair.html">KeyCertificatePair</a></td>
         <td><a class="xref" href="Grpc.Core.KeyCertificatePair.html">KeyCertificatePair</a></td>
         <td><span class="parametername">keyCertificatePair</span></td>
         <td><span class="parametername">keyCertificatePair</span></td>
         <td><p>a key certificate pair.</p>
         <td><p>a key certificate pair.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <a id="Grpc_Core_SslCredentials__ctor_" data-uid="Grpc.Core.SslCredentials.#ctor*"></a>
+  <h4 id="Grpc_Core_SslCredentials__ctor_System_String_Grpc_Core_KeyCertificatePair_Grpc_Core_VerifyPeerCallback_" data-uid="Grpc.Core.SslCredentials.#ctor(System.String,Grpc.Core.KeyCertificatePair,Grpc.Core.VerifyPeerCallback)">SslCredentials(String, KeyCertificatePair, VerifyPeerCallback)</h4>
+  <div class="markdown level1 summary"><p>Creates client-side SSL credentials.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public SslCredentials(string rootCertificates, KeyCertificatePair keyCertificatePair, VerifyPeerCallback verifyPeerCallback)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.String</span></td>
+        <td><span class="parametername">rootCertificates</span></td>
+        <td><p>string containing PEM encoded server root certificates.</p>
+</td>
+      </tr>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.KeyCertificatePair.html">KeyCertificatePair</a></td>
+        <td><span class="parametername">keyCertificatePair</span></td>
+        <td><p>a key certificate pair.</p>
+</td>
+      </tr>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.VerifyPeerCallback.html">VerifyPeerCallback</a></td>
+        <td><span class="parametername">verifyPeerCallback</span></td>
+        <td><p>a callback to verify peer&apos;s target name and certificate.</p>
 </td>
 </td>
       </tr>
       </tr>
     </tbody>
     </tbody>
@@ -252,6 +291,42 @@ If null, client will not use key and certificate pair.</p>
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>
+  <h3 id="methods">Methods
+  </h3>
+  <a id="Grpc_Core_SslCredentials_InternalPopulateConfiguration_" data-uid="Grpc.Core.SslCredentials.InternalPopulateConfiguration*"></a>
+  <h4 id="Grpc_Core_SslCredentials_InternalPopulateConfiguration_Grpc_Core_ChannelCredentialsConfiguratorBase_System_Object_" data-uid="Grpc.Core.SslCredentials.InternalPopulateConfiguration(Grpc.Core.ChannelCredentialsConfiguratorBase,System.Object)">InternalPopulateConfiguration(ChannelCredentialsConfiguratorBase, Object)</h4>
+  <div class="markdown level1 summary"><p>Populates channel credentials configurator with this instance&apos;s configuration.
+End users never need to invoke this method as it is part of internal implementation.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public override void InternalPopulateConfiguration(ChannelCredentialsConfiguratorBase configurator, object state)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.ChannelCredentialsConfiguratorBase.html">ChannelCredentialsConfiguratorBase</a></td>
+        <td><span class="parametername">configurator</span></td>
+        <td></td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Object</span></td>
+        <td><span class="parametername">state</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="overrides">Overrides</h5>
+  <div><a class="xref" href="Grpc.Core.ChannelCredentials.html#Grpc_Core_ChannelCredentials_InternalPopulateConfiguration_Grpc_Core_ChannelCredentialsConfiguratorBase_System_Object_">ChannelCredentials.InternalPopulateConfiguration(ChannelCredentialsConfiguratorBase, Object)</a></div>
 </article>
 </article>
           </div>
           </div>
           
           

+ 2 - 1
csharp/api/Grpc.Core.StatusCode.html

@@ -197,7 +197,8 @@ perhaps the entire file system is out of space.</p>
         <td id="Grpc_Core_StatusCode_Unavailable">Unavailable</td>
         <td id="Grpc_Core_StatusCode_Unavailable">Unavailable</td>
         <td><p>The service is currently unavailable.  This is a most likely a
         <td><p>The service is currently unavailable.  This is a most likely a
 transient condition and may be corrected by retrying with
 transient condition and may be corrected by retrying with
-a backoff.</p>
+a backoff. Note that it is not always safe to retry
+non-idempotent operations.</p>
 </td>
 </td>
       </tr>
       </tr>
       <tr>
       <tr>

+ 8 - 8
csharp/api/Grpc.Core.Testing.TestCalls.html

@@ -124,7 +124,7 @@
   <h3 id="methods">Methods
   <h3 id="methods">Methods
   </h3>
   </h3>
   <a id="Grpc_Core_Testing_TestCalls_AsyncClientStreamingCall_" data-uid="Grpc.Core.Testing.TestCalls.AsyncClientStreamingCall*"></a>
   <a id="Grpc_Core_Testing_TestCalls_AsyncClientStreamingCall_" data-uid="Grpc.Core.Testing.TestCalls.AsyncClientStreamingCall*"></a>
-  <h4 id="Grpc_Core_Testing_TestCalls_AsyncClientStreamingCall__2_Grpc_Core_IClientStreamWriter___0__System_Threading_Tasks_Task___1__System_Threading_Tasks_Task_Metadata__System_Func_Status__System_Func_Metadata__System_Action_" data-uid="Grpc.Core.Testing.TestCalls.AsyncClientStreamingCall``2(Grpc.Core.IClientStreamWriter{``0},System.Threading.Tasks.Task{``1},System.Threading.Tasks.Task{Metadata},System.Func{Status},System.Func{Metadata},System.Action)">AsyncClientStreamingCall&lt;TRequest, TResponse&gt;(IClientStreamWriter&lt;TRequest&gt;, Task&lt;TResponse&gt;, Task&lt;Metadata&gt;, Func&lt;Status&gt;, Func&lt;Metadata&gt;, Action)</h4>
+  <h4 id="Grpc_Core_Testing_TestCalls_AsyncClientStreamingCall__2_IClientStreamWriter___0__System_Threading_Tasks_Task___1__System_Threading_Tasks_Task_Metadata__System_Func_Status__System_Func_Metadata__System_Action_" data-uid="Grpc.Core.Testing.TestCalls.AsyncClientStreamingCall``2(IClientStreamWriter{``0},System.Threading.Tasks.Task{``1},System.Threading.Tasks.Task{Metadata},System.Func{Status},System.Func{Metadata},System.Action)">AsyncClientStreamingCall&lt;TRequest, TResponse&gt;(IClientStreamWriter&lt;TRequest&gt;, Task&lt;TResponse&gt;, Task&lt;Metadata&gt;, Func&lt;Status&gt;, Func&lt;Metadata&gt;, Action)</h4>
   <div class="markdown level1 summary"><p>Creates a test double for <code>AsyncClientStreamingCall</code>. Only for testing.
   <div class="markdown level1 summary"><p>Creates a test double for <code>AsyncClientStreamingCall</code>. Only for testing.
 Note: experimental API that can change or be removed without any prior notice.</p>
 Note: experimental API that can change or be removed without any prior notice.</p>
 </div>
 </div>
@@ -144,7 +144,7 @@ Note: experimental API that can change or be removed without any prior notice.</
     </thead>
     </thead>
     <tbody>
     <tbody>
       <tr>
       <tr>
-        <td><a class="xref" href="Grpc.Core.IClientStreamWriter-1.html">IClientStreamWriter</a>&lt;TRequest&gt;</td>
+        <td><span class="xref">IClientStreamWriter</span>&lt;TRequest&gt;</td>
         <td><span class="parametername">requestStream</span></td>
         <td><span class="parametername">requestStream</span></td>
         <td></td>
         <td></td>
       </tr>
       </tr>
@@ -185,7 +185,7 @@ Note: experimental API that can change or be removed without any prior notice.</
     </thead>
     </thead>
     <tbody>
     <tbody>
       <tr>
       <tr>
-        <td><a class="xref" href="Grpc.Core.AsyncClientStreamingCall-2.html">AsyncClientStreamingCall</a>&lt;TRequest, TResponse&gt;</td>
+        <td><span class="xref">AsyncClientStreamingCall</span>&lt;TRequest, TResponse&gt;</td>
         <td></td>
         <td></td>
       </tr>
       </tr>
     </tbody>
     </tbody>
@@ -210,7 +210,7 @@ Note: experimental API that can change or be removed without any prior notice.</
     </tbody>
     </tbody>
   </table>
   </table>
   <a id="Grpc_Core_Testing_TestCalls_AsyncDuplexStreamingCall_" data-uid="Grpc.Core.Testing.TestCalls.AsyncDuplexStreamingCall*"></a>
   <a id="Grpc_Core_Testing_TestCalls_AsyncDuplexStreamingCall_" data-uid="Grpc.Core.Testing.TestCalls.AsyncDuplexStreamingCall*"></a>
-  <h4 id="Grpc_Core_Testing_TestCalls_AsyncDuplexStreamingCall__2_Grpc_Core_IClientStreamWriter___0__IAsyncStreamReader___1__System_Threading_Tasks_Task_Metadata__System_Func_Status__System_Func_Metadata__System_Action_" data-uid="Grpc.Core.Testing.TestCalls.AsyncDuplexStreamingCall``2(Grpc.Core.IClientStreamWriter{``0},IAsyncStreamReader{``1},System.Threading.Tasks.Task{Metadata},System.Func{Status},System.Func{Metadata},System.Action)">AsyncDuplexStreamingCall&lt;TRequest, TResponse&gt;(IClientStreamWriter&lt;TRequest&gt;, IAsyncStreamReader&lt;TResponse&gt;, Task&lt;Metadata&gt;, Func&lt;Status&gt;, Func&lt;Metadata&gt;, Action)</h4>
+  <h4 id="Grpc_Core_Testing_TestCalls_AsyncDuplexStreamingCall__2_IClientStreamWriter___0__IAsyncStreamReader___1__System_Threading_Tasks_Task_Metadata__System_Func_Status__System_Func_Metadata__System_Action_" data-uid="Grpc.Core.Testing.TestCalls.AsyncDuplexStreamingCall``2(IClientStreamWriter{``0},IAsyncStreamReader{``1},System.Threading.Tasks.Task{Metadata},System.Func{Status},System.Func{Metadata},System.Action)">AsyncDuplexStreamingCall&lt;TRequest, TResponse&gt;(IClientStreamWriter&lt;TRequest&gt;, IAsyncStreamReader&lt;TResponse&gt;, Task&lt;Metadata&gt;, Func&lt;Status&gt;, Func&lt;Metadata&gt;, Action)</h4>
   <div class="markdown level1 summary"><p>Creates a test double for <code>AsyncDuplexStreamingCall</code>. Only for testing.
   <div class="markdown level1 summary"><p>Creates a test double for <code>AsyncDuplexStreamingCall</code>. Only for testing.
 Note: experimental API that can change or be removed without any prior notice.</p>
 Note: experimental API that can change or be removed without any prior notice.</p>
 </div>
 </div>
@@ -230,7 +230,7 @@ Note: experimental API that can change or be removed without any prior notice.</
     </thead>
     </thead>
     <tbody>
     <tbody>
       <tr>
       <tr>
-        <td><a class="xref" href="Grpc.Core.IClientStreamWriter-1.html">IClientStreamWriter</a>&lt;TRequest&gt;</td>
+        <td><span class="xref">IClientStreamWriter</span>&lt;TRequest&gt;</td>
         <td><span class="parametername">requestStream</span></td>
         <td><span class="parametername">requestStream</span></td>
         <td></td>
         <td></td>
       </tr>
       </tr>
@@ -271,7 +271,7 @@ Note: experimental API that can change or be removed without any prior notice.</
     </thead>
     </thead>
     <tbody>
     <tbody>
       <tr>
       <tr>
-        <td><a class="xref" href="Grpc.Core.AsyncDuplexStreamingCall-2.html">AsyncDuplexStreamingCall</a>&lt;TRequest, TResponse&gt;</td>
+        <td><span class="xref">AsyncDuplexStreamingCall</span>&lt;TRequest, TResponse&gt;</td>
         <td></td>
         <td></td>
       </tr>
       </tr>
     </tbody>
     </tbody>
@@ -352,7 +352,7 @@ Note: experimental API that can change or be removed without any prior notice.</
     </thead>
     </thead>
     <tbody>
     <tbody>
       <tr>
       <tr>
-        <td><a class="xref" href="Grpc.Core.AsyncServerStreamingCall-1.html">AsyncServerStreamingCall</a>&lt;TResponse&gt;</td>
+        <td><span class="xref">AsyncServerStreamingCall</span>&lt;TResponse&gt;</td>
         <td></td>
         <td></td>
       </tr>
       </tr>
     </tbody>
     </tbody>
@@ -429,7 +429,7 @@ Note: experimental API that can change or be removed without any prior notice.</
     </thead>
     </thead>
     <tbody>
     <tbody>
       <tr>
       <tr>
-        <td><a class="xref" href="Grpc.Core.AsyncUnaryCall-1.html">AsyncUnaryCall</a>&lt;TResponse&gt;</td>
+        <td><span class="xref">AsyncUnaryCall</span>&lt;TResponse&gt;</td>
         <td></td>
         <td></td>
       </tr>
       </tr>
     </tbody>
     </tbody>

+ 167 - 0
csharp/api/Grpc.Core.VerifyPeerCallback.html

@@ -0,0 +1,167 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Delegate VerifyPeerCallback
+   | gRPC C# </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Delegate VerifyPeerCallback
+   | gRPC C# ">
+    <meta name="generator" content="docfx 2.36.0.0">
+    
+    <link rel="shortcut icon" href="../favicon.ico">
+    <link rel="stylesheet" href="../styles/docfx.vendor.css">
+    <link rel="stylesheet" href="../styles/docfx.css">
+    <link rel="stylesheet" href="../styles/main.css">
+    <meta property="docfx:navrel" content="../toc.html">
+    <meta property="docfx:tocrel" content="toc.html">
+    
+    <meta property="docfx:rel" content="../">
+    
+  </head>
+  <body data-spy="scroll" data-target="#affix" data-offset="120">
+    <div id="wrapper">
+      <header>
+        
+        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
+          <div class="container">
+            <div class="navbar-header">
+              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+              </button>
+              
+              <a class="navbar-brand" href="../index.html">
+                <img id="logo" class="svg" src="../logo.svg" alt="">
+              </a>
+            </div>
+            <div class="collapse navbar-collapse" id="navbar">
+              <form class="navbar-form navbar-right" role="search" id="search">
+                <div class="form-group">
+                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
+                </div>
+              </form>
+            </div>
+          </div>
+        </nav>
+        
+        <div class="subnav navbar navbar-default">
+          <div class="container hide-when-search" id="breadcrumb">
+            <ul class="breadcrumb">
+              <li></li>
+            </ul>
+          </div>
+        </div>
+      </header>
+      <div class="container body-content">
+        
+        <div id="search-results">
+          <div class="search-list"></div>
+          <div class="sr-items">
+            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
+          </div>
+          <ul id="pagination"></ul>
+        </div>
+      </div>
+      <div role="main" class="container body-content hide-when-search">
+        
+        <div class="sidenav hide-when-search">
+          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
+          <div class="sidetoggle collapse" id="sidetoggle">
+            <div id="sidetoc"></div>
+          </div>
+        </div>
+        <div class="article row grid-right">
+          <div class="col-md-10">
+            <article class="content wrap" id="_content" data-uid="Grpc.Core.VerifyPeerCallback">
+  
+  
+  <h1 id="Grpc_Core_VerifyPeerCallback" data-uid="Grpc.Core.VerifyPeerCallback" class="text-break">Delegate VerifyPeerCallback
+  </h1>
+  <div class="markdown level0 summary"><p>Callback invoked with the expected targetHost and the peer&apos;s certificate.
+If false is returned by this callback then it is treated as a
+verification failure and the attempted connection will fail.
+Invocation of the callback is blocking, so any
+implementation should be light-weight.
+Note that the callback can potentially be invoked multiple times,
+concurrently from different threads (e.g. when multiple connections
+are being created for the same credentials).</p>
+</div>
+  <div class="markdown level0 conceptual"></div>
+  <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
+  <h5 id="Grpc_Core_VerifyPeerCallback_syntax">Syntax</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public delegate bool VerifyPeerCallback(VerifyPeerContext context);</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.VerifyPeerContext.html">VerifyPeerContext</a></td>
+        <td><span class="parametername">context</span></td>
+        <td><p>The <a class="xref" href="Grpc.Core.VerifyPeerContext.html">VerifyPeerContext</a> associated with the callback</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td><p>true if verification succeeded, false otherwise.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+</article>
+          </div>
+          
+          <div class="hidden-sm col-md-2" role="complementary">
+            <div class="sideaffix">
+              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
+              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+              </nav>
+            </div>
+          </div>
+        </div>
+      </div>
+      
+      <footer>
+        <div class="grad-bottom"></div>
+        <div class="footer">
+          <div class="container">
+            <span class="pull-right">
+              <a href="#top">Back to top</a>
+            </span>
+            
+            <span>Generated by <strong>DocFX</strong></span>
+          </div>
+        </div>
+      </footer>
+    </div>
+    
+    <script type="text/javascript" src="../styles/docfx.vendor.js"></script>
+    <script type="text/javascript" src="../styles/docfx.js"></script>
+    <script type="text/javascript" src="../styles/main.js"></script>
+  </body>
+</html>

+ 206 - 0
csharp/api/Grpc.Core.VerifyPeerContext.html

@@ -0,0 +1,206 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Class VerifyPeerContext
+   | gRPC C# </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Class VerifyPeerContext
+   | gRPC C# ">
+    <meta name="generator" content="docfx 2.36.0.0">
+    
+    <link rel="shortcut icon" href="../favicon.ico">
+    <link rel="stylesheet" href="../styles/docfx.vendor.css">
+    <link rel="stylesheet" href="../styles/docfx.css">
+    <link rel="stylesheet" href="../styles/main.css">
+    <meta property="docfx:navrel" content="../toc.html">
+    <meta property="docfx:tocrel" content="toc.html">
+    
+    <meta property="docfx:rel" content="../">
+    
+  </head>
+  <body data-spy="scroll" data-target="#affix" data-offset="120">
+    <div id="wrapper">
+      <header>
+        
+        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
+          <div class="container">
+            <div class="navbar-header">
+              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+              </button>
+              
+              <a class="navbar-brand" href="../index.html">
+                <img id="logo" class="svg" src="../logo.svg" alt="">
+              </a>
+            </div>
+            <div class="collapse navbar-collapse" id="navbar">
+              <form class="navbar-form navbar-right" role="search" id="search">
+                <div class="form-group">
+                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
+                </div>
+              </form>
+            </div>
+          </div>
+        </nav>
+        
+        <div class="subnav navbar navbar-default">
+          <div class="container hide-when-search" id="breadcrumb">
+            <ul class="breadcrumb">
+              <li></li>
+            </ul>
+          </div>
+        </div>
+      </header>
+      <div class="container body-content">
+        
+        <div id="search-results">
+          <div class="search-list"></div>
+          <div class="sr-items">
+            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
+          </div>
+          <ul id="pagination"></ul>
+        </div>
+      </div>
+      <div role="main" class="container body-content hide-when-search">
+        
+        <div class="sidenav hide-when-search">
+          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
+          <div class="sidetoggle collapse" id="sidetoggle">
+            <div id="sidetoc"></div>
+          </div>
+        </div>
+        <div class="article row grid-right">
+          <div class="col-md-10">
+            <article class="content wrap" id="_content" data-uid="Grpc.Core.VerifyPeerContext">
+  
+  
+  <h1 id="Grpc_Core_VerifyPeerContext" data-uid="Grpc.Core.VerifyPeerContext" class="text-break">Class VerifyPeerContext
+  </h1>
+  <div class="markdown level0 summary"><p>Verification context for VerifyPeerCallback.
+Note: experimental API that can change or be removed without any prior notice.</p>
+</div>
+  <div class="markdown level0 conceptual"></div>
+  <div class="inheritance">
+    <h5>Inheritance</h5>
+    <div class="level0"><span class="xref">System.Object</span></div>
+    <div class="level1"><span class="xref">VerifyPeerContext</span></div>
+  </div>
+  <div class="inheritedMembers">
+    <h5>Inherited Members</h5>
+    <div>
+      <span class="xref">System.Object.Equals(System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.GetHashCode()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.GetType()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.MemberwiseClone()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.ToString()</span>
+    </div>
+  </div>
+  <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
+  <h5 id="Grpc_Core_VerifyPeerContext_syntax">Syntax</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public class VerifyPeerContext</code></pre>
+  </div>
+  <h3 id="properties">Properties
+  </h3>
+  <a id="Grpc_Core_VerifyPeerContext_PeerPem_" data-uid="Grpc.Core.VerifyPeerContext.PeerPem*"></a>
+  <h4 id="Grpc_Core_VerifyPeerContext_PeerPem" data-uid="Grpc.Core.VerifyPeerContext.PeerPem">PeerPem</h4>
+  <div class="markdown level1 summary"><p>The PEM encoded certificate of the peer.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public string PeerPem { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.String</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <a id="Grpc_Core_VerifyPeerContext_TargetName_" data-uid="Grpc.Core.VerifyPeerContext.TargetName*"></a>
+  <h4 id="Grpc_Core_VerifyPeerContext_TargetName" data-uid="Grpc.Core.VerifyPeerContext.TargetName">TargetName</h4>
+  <div class="markdown level1 summary"><p>The target name of the peer.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public string TargetName { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.String</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+</article>
+          </div>
+          
+          <div class="hidden-sm col-md-2" role="complementary">
+            <div class="sideaffix">
+              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
+              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+              </nav>
+            </div>
+          </div>
+        </div>
+      </div>
+      
+      <footer>
+        <div class="grad-bottom"></div>
+        <div class="footer">
+          <div class="container">
+            <span class="pull-right">
+              <a href="#top">Back to top</a>
+            </span>
+            
+            <span>Generated by <strong>DocFX</strong></span>
+          </div>
+        </div>
+      </footer>
+    </div>
+    
+    <script type="text/javascript" src="../styles/docfx.vendor.js"></script>
+    <script type="text/javascript" src="../styles/docfx.js"></script>
+    <script type="text/javascript" src="../styles/main.js"></script>
+  </body>
+</html>

+ 4 - 4
csharp/api/Grpc.Core.VersionInfo.html

@@ -118,7 +118,7 @@ for rationale about assembly versioning.</p>
     </div>
     </div>
   </div>
   </div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
   <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.html">Grpc.Core</a></h6>
-  <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
+  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>
   <h5 id="Grpc_Core_VersionInfo_syntax">Syntax</h5>
   <h5 id="Grpc_Core_VersionInfo_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
     <pre><code class="lang-csharp hljs">public static class VersionInfo</code></pre>
     <pre><code class="lang-csharp hljs">public static class VersionInfo</code></pre>
@@ -131,7 +131,7 @@ for rationale about assembly versioning.</p>
   <div class="markdown level1 conceptual"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
   <div class="codewrapper">
-    <pre><code class="lang-csharp hljs">public const string CurrentAssemblyFileVersion = &quot;1.19.0.0&quot;</code></pre>
+    <pre><code class="lang-csharp hljs">public const string CurrentAssemblyFileVersion = &quot;2.23.0.0&quot;</code></pre>
   </div>
   </div>
   <h5 class="fieldValue">Field Value</h5>
   <h5 class="fieldValue">Field Value</h5>
   <table class="table table-bordered table-striped table-condensed">
   <table class="table table-bordered table-striped table-condensed">
@@ -154,7 +154,7 @@ for rationale about assembly versioning.</p>
   <div class="markdown level1 conceptual"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
   <div class="codewrapper">
-    <pre><code class="lang-csharp hljs">public const string CurrentAssemblyVersion = &quot;1.0.0.0&quot;</code></pre>
+    <pre><code class="lang-csharp hljs">public const string CurrentAssemblyVersion = &quot;2.0.0.0&quot;</code></pre>
   </div>
   </div>
   <h5 class="fieldValue">Field Value</h5>
   <h5 class="fieldValue">Field Value</h5>
   <table class="table table-bordered table-striped table-condensed">
   <table class="table table-bordered table-striped table-condensed">
@@ -177,7 +177,7 @@ for rationale about assembly versioning.</p>
   <div class="markdown level1 conceptual"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
   <div class="codewrapper">
-    <pre><code class="lang-csharp hljs">public const string CurrentVersion = &quot;1.19.0&quot;</code></pre>
+    <pre><code class="lang-csharp hljs">public const string CurrentVersion = &quot;2.23.0&quot;</code></pre>
   </div>
   </div>
   <h5 class="fieldValue">Field Value</h5>
   <h5 class="fieldValue">Field Value</h5>
   <table class="table table-bordered table-striped table-condensed">
   <table class="table table-bordered table-striped table-condensed">

+ 42 - 0
csharp/api/Grpc.Core.html

@@ -95,6 +95,9 @@
 </section>
 </section>
       <h4><a class="xref" href="Grpc.Core.AsyncServerStreamingCall-1.html">AsyncServerStreamingCall&lt;TResponse&gt;</a></h4>
       <h4><a class="xref" href="Grpc.Core.AsyncServerStreamingCall-1.html">AsyncServerStreamingCall&lt;TResponse&gt;</a></h4>
       <section><p>Return type for server streaming calls.</p>
       <section><p>Return type for server streaming calls.</p>
+</section>
+      <h4><a class="xref" href="Grpc.Core.AsyncStreamReaderExtensions.html">AsyncStreamReaderExtensions</a></h4>
+      <section><p>Extension methods for <a class="xref" href="Grpc.Core.IAsyncStreamReader-1.html">IAsyncStreamReader&lt;T&gt;</a>.</p>
 </section>
 </section>
       <h4><a class="xref" href="Grpc.Core.AsyncUnaryCall-1.html">AsyncUnaryCall&lt;TResponse&gt;</a></h4>
       <h4><a class="xref" href="Grpc.Core.AsyncUnaryCall-1.html">AsyncUnaryCall&lt;TResponse&gt;</a></h4>
       <section><p>Return type for single request - single response call.</p>
       <section><p>Return type for single request - single response call.</p>
@@ -111,9 +114,20 @@ Note: experimental API that can change or be removed without any prior notice.</
       <h4><a class="xref" href="Grpc.Core.AuthProperty.html">AuthProperty</a></h4>
       <h4><a class="xref" href="Grpc.Core.AuthProperty.html">AuthProperty</a></h4>
       <section><p>A property of an <a class="xref" href="Grpc.Core.AuthContext.html">AuthContext</a>.
       <section><p>A property of an <a class="xref" href="Grpc.Core.AuthContext.html">AuthContext</a>.
 Note: experimental API that can change or be removed without any prior notice.</p>
 Note: experimental API that can change or be removed without any prior notice.</p>
+</section>
+      <h4><a class="xref" href="Grpc.Core.BindServiceMethodAttribute.html">BindServiceMethodAttribute</a></h4>
+      <section><p>Specifies the location of the service bind method for a gRPC service.
+The bind method is typically generated code and is used to register a service&apos;s
+methods with the server on startup.</p>
+<p>The bind method signature takes a <a class="xref" href="Grpc.Core.ServiceBinderBase.html">ServiceBinderBase</a> and an optional
+instance of the service base class, e.g. <code>static void BindService(ServiceBinderBase, GreeterService)</code>.</p>
 </section>
 </section>
       <h4><a class="xref" href="Grpc.Core.CallCredentials.html">CallCredentials</a></h4>
       <h4><a class="xref" href="Grpc.Core.CallCredentials.html">CallCredentials</a></h4>
       <section><p>Client-side call credentials. Provide authorization with per-call granularity.</p>
       <section><p>Client-side call credentials. Provide authorization with per-call granularity.</p>
+</section>
+      <h4><a class="xref" href="Grpc.Core.CallCredentialsConfiguratorBase.html">CallCredentialsConfiguratorBase</a></h4>
+      <section><p>Base class for objects that can consume configuration from <code>CallCredentials</code> objects.
+Note: experimental API that can change or be removed without any prior notice.</p>
 </section>
 </section>
       <h4><a class="xref" href="Grpc.Core.CallInvoker.html">CallInvoker</a></h4>
       <h4><a class="xref" href="Grpc.Core.CallInvoker.html">CallInvoker</a></h4>
       <section><p>Abstraction of client-side RPC invocation.</p>
       <section><p>Abstraction of client-side RPC invocation.</p>
@@ -128,9 +142,16 @@ buffer definition files.</p>
       <section><p>Represents a gRPC channel. Channels are an abstraction of long-lived connections to remote servers.
       <section><p>Represents a gRPC channel. Channels are an abstraction of long-lived connections to remote servers.
 More client objects can reuse the same channel. Creating a channel is an expensive operation compared to invoking
 More client objects can reuse the same channel. Creating a channel is an expensive operation compared to invoking
 a remote call so in general you should reuse a single channel for as many calls as possible.</p>
 a remote call so in general you should reuse a single channel for as many calls as possible.</p>
+</section>
+      <h4><a class="xref" href="Grpc.Core.ChannelBase.html">ChannelBase</a></h4>
+      <section><p>Base class for gRPC channel. Channels are an abstraction of long-lived connections to remote servers.</p>
 </section>
 </section>
       <h4><a class="xref" href="Grpc.Core.ChannelCredentials.html">ChannelCredentials</a></h4>
       <h4><a class="xref" href="Grpc.Core.ChannelCredentials.html">ChannelCredentials</a></h4>
       <section><p>Client-side channel credentials. Used for creation of a secure channel.</p>
       <section><p>Client-side channel credentials. Used for creation of a secure channel.</p>
+</section>
+      <h4><a class="xref" href="Grpc.Core.ChannelCredentialsConfiguratorBase.html">ChannelCredentialsConfiguratorBase</a></h4>
+      <section><p>Base class for objects that can consume configuration from <code>CallCredentials</code> objects.
+Note: experimental API that can change or be removed without any prior notice.</p>
 </section>
 </section>
       <h4><a class="xref" href="Grpc.Core.ChannelOption.html">ChannelOption</a></h4>
       <h4><a class="xref" href="Grpc.Core.ChannelOption.html">ChannelOption</a></h4>
       <section><p>Channel option specified when creating a channel.
       <section><p>Channel option specified when creating a channel.
@@ -176,6 +197,13 @@ are not explicitly accesible via the public C# API, but this token still allows
 </section>
 </section>
       <h4><a class="xref" href="Grpc.Core.KeyCertificatePair.html">KeyCertificatePair</a></h4>
       <h4><a class="xref" href="Grpc.Core.KeyCertificatePair.html">KeyCertificatePair</a></h4>
       <section><p>Key certificate pair (in PEM encoding).</p>
       <section><p>Key certificate pair (in PEM encoding).</p>
+</section>
+      <h4><a class="xref" href="Grpc.Core.LiteClientBase.html">LiteClientBase</a></h4>
+      <section><p>Base class for lightweight client-side stubs.
+All calls are invoked via a <code>CallInvoker</code>.
+Lite client stubs have no configuration knobs, all configuration
+is provided by decorating the call invoker.
+Note: experimental API that can change or be removed without any prior notice.</p>
 </section>
 </section>
       <h4><a class="xref" href="Grpc.Core.Marshaller-1.html">Marshaller&lt;T&gt;</a></h4>
       <h4><a class="xref" href="Grpc.Core.Marshaller-1.html">Marshaller&lt;T&gt;</a></h4>
       <section><p>Encapsulates the logic for serializing and deserializing messages.</p>
       <section><p>Encapsulates the logic for serializing and deserializing messages.</p>
@@ -236,6 +264,10 @@ that is part of the autogenerated code for a protocol buffers service definition
 </section>
 </section>
       <h4><a class="xref" href="Grpc.Core.SslServerCredentials.html">SslServerCredentials</a></h4>
       <h4><a class="xref" href="Grpc.Core.SslServerCredentials.html">SslServerCredentials</a></h4>
       <section><p>Server-side SSL credentials.</p>
       <section><p>Server-side SSL credentials.</p>
+</section>
+      <h4><a class="xref" href="Grpc.Core.VerifyPeerContext.html">VerifyPeerContext</a></h4>
+      <section><p>Verification context for VerifyPeerCallback.
+Note: experimental API that can change or be removed without any prior notice.</p>
 </section>
 </section>
       <h4><a class="xref" href="Grpc.Core.VersionInfo.html">VersionInfo</a></h4>
       <h4><a class="xref" href="Grpc.Core.VersionInfo.html">VersionInfo</a></h4>
       <section><p>Provides info about current version of gRPC.
       <section><p>Provides info about current version of gRPC.
@@ -337,6 +369,16 @@ Based on grpc_status_code from grpc/status.h</p>
 </section>
 </section>
       <h4><a class="xref" href="Grpc.Core.UnaryServerMethod-2.html">UnaryServerMethod&lt;TRequest, TResponse&gt;</a></h4>
       <h4><a class="xref" href="Grpc.Core.UnaryServerMethod-2.html">UnaryServerMethod&lt;TRequest, TResponse&gt;</a></h4>
       <section><p>Server-side handler for unary call.</p>
       <section><p>Server-side handler for unary call.</p>
+</section>
+      <h4><a class="xref" href="Grpc.Core.VerifyPeerCallback.html">VerifyPeerCallback</a></h4>
+      <section><p>Callback invoked with the expected targetHost and the peer&apos;s certificate.
+If false is returned by this callback then it is treated as a
+verification failure and the attempted connection will fail.
+Invocation of the callback is blocking, so any
+implementation should be light-weight.
+Note that the callback can potentially be invoked multiple times,
+concurrently from different threads (e.g. when multiple connections
+are being created for the same credentials).</p>
 </section>
 </section>
 </article>
 </article>
           </div>
           </div>

+ 2 - 1
csharp/api/Grpc.Health.V1.Health.HealthBase.html

@@ -120,7 +120,8 @@
   <h6><strong>Assembly</strong>: Grpc.HealthCheck.dll</h6>
   <h6><strong>Assembly</strong>: Grpc.HealthCheck.dll</h6>
   <h5 id="Grpc_Health_V1_Health_HealthBase_syntax">Syntax</h5>
   <h5 id="Grpc_Health_V1_Health_HealthBase_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
-    <pre><code class="lang-csharp hljs">public abstract class HealthBase</code></pre>
+    <pre><code class="lang-csharp hljs">[BindServiceMethod(typeof(Health), &quot;BindService&quot;)]
+public abstract class HealthBase</code></pre>
   </div>
   </div>
   <h3 id="methods">Methods
   <h3 id="methods">Methods
   </h3>
   </h3>

+ 3 - 3
csharp/api/Grpc.Health.V1.Health.HealthClient.html

@@ -168,13 +168,13 @@
     </tbody>
     </tbody>
   </table>
   </table>
   <a id="Grpc_Health_V1_Health_HealthClient__ctor_" data-uid="Grpc.Health.V1.Health.HealthClient.#ctor*"></a>
   <a id="Grpc_Health_V1_Health_HealthClient__ctor_" data-uid="Grpc.Health.V1.Health.HealthClient.#ctor*"></a>
-  <h4 id="Grpc_Health_V1_Health_HealthClient__ctor_Grpc_Core_Channel_" data-uid="Grpc.Health.V1.Health.HealthClient.#ctor(Grpc.Core.Channel)">HealthClient(Channel)</h4>
+  <h4 id="Grpc_Health_V1_Health_HealthClient__ctor_Grpc_Core_ChannelBase_" data-uid="Grpc.Health.V1.Health.HealthClient.#ctor(Grpc.Core.ChannelBase)">HealthClient(ChannelBase)</h4>
   <div class="markdown level1 summary"><p>Creates a new client for Health</p>
   <div class="markdown level1 summary"><p>Creates a new client for Health</p>
 </div>
 </div>
   <div class="markdown level1 conceptual"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
   <div class="codewrapper">
-    <pre><code class="lang-csharp hljs">public HealthClient(Channel channel)</code></pre>
+    <pre><code class="lang-csharp hljs">public HealthClient(ChannelBase channel)</code></pre>
   </div>
   </div>
   <h5 class="parameters">Parameters</h5>
   <h5 class="parameters">Parameters</h5>
   <table class="table table-bordered table-striped table-condensed">
   <table class="table table-bordered table-striped table-condensed">
@@ -187,7 +187,7 @@
     </thead>
     </thead>
     <tbody>
     <tbody>
       <tr>
       <tr>
-        <td><a class="xref" href="Grpc.Core.Channel.html">Channel</a></td>
+        <td><a class="xref" href="Grpc.Core.ChannelBase.html">ChannelBase</a></td>
         <td><span class="parametername">channel</span></td>
         <td><span class="parametername">channel</span></td>
         <td><p>The channel to use to make remote calls.</p>
         <td><p>The channel to use to make remote calls.</p>
 </td>
 </td>

+ 4 - 5
csharp/api/Grpc.HealthCheck.HealthServiceImpl.html

@@ -98,9 +98,6 @@ server.AddServiceDefinition(Grpc.Health.V1.Health.BindService(serviceImpl));</co
   </div>
   </div>
   <div class="inheritedMembers">
   <div class="inheritedMembers">
     <h5>Inherited Members</h5>
     <h5>Inherited Members</h5>
-    <div>
-      <a class="xref" href="Grpc.Health.V1.Health.HealthBase.html#Grpc_Health_V1_Health_HealthBase_Check_Grpc_Health_V1_HealthCheckRequest_Grpc_Core_ServerCallContext_">Health.HealthBase.Check(HealthCheckRequest, ServerCallContext)</a>
-    </div>
     <div>
     <div>
       <a class="xref" href="Grpc.Health.V1.Health.HealthBase.html#Grpc_Health_V1_Health_HealthBase_Watch_Grpc_Health_V1_HealthCheckRequest_Grpc_Core_IServerStreamWriter_Grpc_Health_V1_HealthCheckResponse__Grpc_Core_ServerCallContext_">Health.HealthBase.Watch(HealthCheckRequest, IServerStreamWriter&lt;HealthCheckResponse&gt;, ServerCallContext)</a>
       <a class="xref" href="Grpc.Health.V1.Health.HealthBase.html#Grpc_Health_V1_Health_HealthBase_Watch_Grpc_Health_V1_HealthCheckRequest_Grpc_Core_IServerStreamWriter_Grpc_Health_V1_HealthCheckResponse__Grpc_Core_ServerCallContext_">Health.HealthBase.Watch(HealthCheckRequest, IServerStreamWriter&lt;HealthCheckResponse&gt;, ServerCallContext)</a>
     </div>
     </div>
@@ -135,7 +132,7 @@ server.AddServiceDefinition(Grpc.Health.V1.Health.BindService(serviceImpl));</co
   <h3 id="methods">Methods
   <h3 id="methods">Methods
   </h3>
   </h3>
   <a id="Grpc_HealthCheck_HealthServiceImpl_Check_" data-uid="Grpc.HealthCheck.HealthServiceImpl.Check*"></a>
   <a id="Grpc_HealthCheck_HealthServiceImpl_Check_" data-uid="Grpc.HealthCheck.HealthServiceImpl.Check*"></a>
-  <h4 id="Grpc_HealthCheck_HealthServiceImpl_Check_Grpc_Health_V1_HealthCheckRequest_ServerCallContext_" data-uid="Grpc.HealthCheck.HealthServiceImpl.Check(Grpc.Health.V1.HealthCheckRequest,ServerCallContext)">Check(HealthCheckRequest, ServerCallContext)</h4>
+  <h4 id="Grpc_HealthCheck_HealthServiceImpl_Check_Grpc_Health_V1_HealthCheckRequest_Grpc_Core_ServerCallContext_" data-uid="Grpc.HealthCheck.HealthServiceImpl.Check(Grpc.Health.V1.HealthCheckRequest,Grpc.Core.ServerCallContext)">Check(HealthCheckRequest, ServerCallContext)</h4>
   <div class="markdown level1 summary"><p>Performs a health status check.</p>
   <div class="markdown level1 summary"><p>Performs a health status check.</p>
 </div>
 </div>
   <div class="markdown level1 conceptual"></div>
   <div class="markdown level1 conceptual"></div>
@@ -160,7 +157,7 @@ server.AddServiceDefinition(Grpc.Health.V1.Health.BindService(serviceImpl));</co
 </td>
 </td>
       </tr>
       </tr>
       <tr>
       <tr>
-        <td><span class="xref">ServerCallContext</span></td>
+        <td><a class="xref" href="Grpc.Core.ServerCallContext.html">ServerCallContext</a></td>
         <td><span class="parametername">context</span></td>
         <td><span class="parametername">context</span></td>
         <td><p>The call context.</p>
         <td><p>The call context.</p>
 </td>
 </td>
@@ -183,6 +180,8 @@ server.AddServiceDefinition(Grpc.Health.V1.Health.BindService(serviceImpl));</co
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>
+  <h5 class="overrides">Overrides</h5>
+  <div><a class="xref" href="Grpc.Health.V1.Health.HealthBase.html#Grpc_Health_V1_Health_HealthBase_Check_Grpc_Health_V1_HealthCheckRequest_Grpc_Core_ServerCallContext_">Health.HealthBase.Check(HealthCheckRequest, ServerCallContext)</a></div>
   <a id="Grpc_HealthCheck_HealthServiceImpl_ClearAll_" data-uid="Grpc.HealthCheck.HealthServiceImpl.ClearAll*"></a>
   <a id="Grpc_HealthCheck_HealthServiceImpl_ClearAll_" data-uid="Grpc.HealthCheck.HealthServiceImpl.ClearAll*"></a>
   <h4 id="Grpc_HealthCheck_HealthServiceImpl_ClearAll" data-uid="Grpc.HealthCheck.HealthServiceImpl.ClearAll">ClearAll()</h4>
   <h4 id="Grpc_HealthCheck_HealthServiceImpl_ClearAll" data-uid="Grpc.HealthCheck.HealthServiceImpl.ClearAll">ClearAll()</h4>
   <div class="markdown level1 summary"><p>Clears statuses for all services.</p>
   <div class="markdown level1 summary"><p>Clears statuses for all services.</p>

+ 24 - 0
csharp/api/toc.html

@@ -40,6 +40,9 @@
                   <li>
                   <li>
                     <a href="Grpc.Core.AsyncServerStreamingCall-1.html" name="" title="AsyncServerStreamingCall&lt;TResponse&gt;">AsyncServerStreamingCall&lt;TResponse&gt;</a>
                     <a href="Grpc.Core.AsyncServerStreamingCall-1.html" name="" title="AsyncServerStreamingCall&lt;TResponse&gt;">AsyncServerStreamingCall&lt;TResponse&gt;</a>
                   </li>
                   </li>
+                  <li>
+                    <a href="Grpc.Core.AsyncStreamReaderExtensions.html" name="" title="AsyncStreamReaderExtensions">AsyncStreamReaderExtensions</a>
+                  </li>
                   <li>
                   <li>
                     <a href="Grpc.Core.AsyncUnaryCall-1.html" name="" title="AsyncUnaryCall&lt;TResponse&gt;">AsyncUnaryCall&lt;TResponse&gt;</a>
                     <a href="Grpc.Core.AsyncUnaryCall-1.html" name="" title="AsyncUnaryCall&lt;TResponse&gt;">AsyncUnaryCall&lt;TResponse&gt;</a>
                   </li>
                   </li>
@@ -52,9 +55,15 @@
                   <li>
                   <li>
                     <a href="Grpc.Core.AuthProperty.html" name="" title="AuthProperty">AuthProperty</a>
                     <a href="Grpc.Core.AuthProperty.html" name="" title="AuthProperty">AuthProperty</a>
                   </li>
                   </li>
+                  <li>
+                    <a href="Grpc.Core.BindServiceMethodAttribute.html" name="" title="BindServiceMethodAttribute">BindServiceMethodAttribute</a>
+                  </li>
                   <li>
                   <li>
                     <a href="Grpc.Core.CallCredentials.html" name="" title="CallCredentials">CallCredentials</a>
                     <a href="Grpc.Core.CallCredentials.html" name="" title="CallCredentials">CallCredentials</a>
                   </li>
                   </li>
+                  <li>
+                    <a href="Grpc.Core.CallCredentialsConfiguratorBase.html" name="" title="CallCredentialsConfiguratorBase">CallCredentialsConfiguratorBase</a>
+                  </li>
                   <li>
                   <li>
                     <a href="Grpc.Core.CallInvocationDetails-2.html" name="" title="CallInvocationDetails&lt;TRequest, TResponse&gt;">CallInvocationDetails&lt;TRequest, TResponse&gt;</a>
                     <a href="Grpc.Core.CallInvocationDetails-2.html" name="" title="CallInvocationDetails&lt;TRequest, TResponse&gt;">CallInvocationDetails&lt;TRequest, TResponse&gt;</a>
                   </li>
                   </li>
@@ -70,9 +79,15 @@
                   <li>
                   <li>
                     <a href="Grpc.Core.Channel.html" name="" title="Channel">Channel</a>
                     <a href="Grpc.Core.Channel.html" name="" title="Channel">Channel</a>
                   </li>
                   </li>
+                  <li>
+                    <a href="Grpc.Core.ChannelBase.html" name="" title="ChannelBase">ChannelBase</a>
+                  </li>
                   <li>
                   <li>
                     <a href="Grpc.Core.ChannelCredentials.html" name="" title="ChannelCredentials">ChannelCredentials</a>
                     <a href="Grpc.Core.ChannelCredentials.html" name="" title="ChannelCredentials">ChannelCredentials</a>
                   </li>
                   </li>
+                  <li>
+                    <a href="Grpc.Core.ChannelCredentialsConfiguratorBase.html" name="" title="ChannelCredentialsConfiguratorBase">ChannelCredentialsConfiguratorBase</a>
+                  </li>
                   <li>
                   <li>
                     <a href="Grpc.Core.ChannelOption.html" name="" title="ChannelOption">ChannelOption</a>
                     <a href="Grpc.Core.ChannelOption.html" name="" title="ChannelOption">ChannelOption</a>
                   </li>
                   </li>
@@ -136,6 +151,9 @@
                   <li>
                   <li>
                     <a href="Grpc.Core.KeyCertificatePair.html" name="" title="KeyCertificatePair">KeyCertificatePair</a>
                     <a href="Grpc.Core.KeyCertificatePair.html" name="" title="KeyCertificatePair">KeyCertificatePair</a>
                   </li>
                   </li>
+                  <li>
+                    <a href="Grpc.Core.LiteClientBase.html" name="" title="LiteClientBase">LiteClientBase</a>
+                  </li>
                   <li>
                   <li>
                     <a href="Grpc.Core.Marshaller-1.html" name="" title="Marshaller&lt;T&gt;">Marshaller&lt;T&gt;</a>
                     <a href="Grpc.Core.Marshaller-1.html" name="" title="Marshaller&lt;T&gt;">Marshaller&lt;T&gt;</a>
                   </li>
                   </li>
@@ -208,6 +226,12 @@
                   <li>
                   <li>
                     <a href="Grpc.Core.UnaryServerMethod-2.html" name="" title="UnaryServerMethod&lt;TRequest, TResponse&gt;">UnaryServerMethod&lt;TRequest, TResponse&gt;</a>
                     <a href="Grpc.Core.UnaryServerMethod-2.html" name="" title="UnaryServerMethod&lt;TRequest, TResponse&gt;">UnaryServerMethod&lt;TRequest, TResponse&gt;</a>
                   </li>
                   </li>
+                  <li>
+                    <a href="Grpc.Core.VerifyPeerCallback.html" name="" title="VerifyPeerCallback">VerifyPeerCallback</a>
+                  </li>
+                  <li>
+                    <a href="Grpc.Core.VerifyPeerContext.html" name="" title="VerifyPeerContext">VerifyPeerContext</a>
+                  </li>
                   <li>
                   <li>
                     <a href="Grpc.Core.VersionInfo.html" name="" title="VersionInfo">VersionInfo</a>
                     <a href="Grpc.Core.VersionInfo.html" name="" title="VersionInfo">VersionInfo</a>
                   </li>
                   </li>

File diff suppressed because it is too large
+ 0 - 8
csharp/index.json


+ 137 - 41
csharp/manifest.json

@@ -1,6 +1,6 @@
 {
 {
   "homepages": [],
   "homepages": [],
-  "source_base_path": "/work/doc",
+  "source_base_path": "/work/docfx",
   "xrefmap": "xrefmap.yml",
   "xrefmap": "xrefmap.yml",
   "files": [
   "files": [
     {
     {
@@ -54,7 +54,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.AsyncAuthInterceptor.html",
           "relative_path": "api/Grpc.Core.AsyncAuthInterceptor.html",
-          "hash": "+ClKA8HJoFR37Q1REkRPWQ=="
+          "hash": "PTcmkC2kJsQowbg9lsyGfw=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -66,7 +66,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.AsyncClientStreamingCall-2.html",
           "relative_path": "api/Grpc.Core.AsyncClientStreamingCall-2.html",
-          "hash": "ZYCL/L5tDtXdap5SNR7AnA=="
+          "hash": "2m7hquSyj+KN/oAOxrclwA=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -78,7 +78,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.AsyncDuplexStreamingCall-2.html",
           "relative_path": "api/Grpc.Core.AsyncDuplexStreamingCall-2.html",
-          "hash": "DK+HZVIck5b10q8Wz2ZlEw=="
+          "hash": "UtljUZtjsAmzoZhHnb3lPQ=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -90,7 +90,19 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.AsyncServerStreamingCall-1.html",
           "relative_path": "api/Grpc.Core.AsyncServerStreamingCall-1.html",
-          "hash": "VfWgsgIyq/keKdB0qTxZig=="
+          "hash": "H9J0v7M6nY7/R1Nr+BI+6w=="
+        }
+      },
+      "is_incremental": false,
+      "version": ""
+    },
+    {
+      "type": "ManagedReference",
+      "source_relative_path": "obj/api/Grpc.Core.AsyncStreamReaderExtensions.yml",
+      "output": {
+        ".html": {
+          "relative_path": "api/Grpc.Core.AsyncStreamReaderExtensions.html",
+          "hash": "Tg66k+cUvCofhYdkI7kM6w=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -102,7 +114,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.AsyncUnaryCall-1.html",
           "relative_path": "api/Grpc.Core.AsyncUnaryCall-1.html",
-          "hash": "Z2kbVSSCHjp2eumwGJVh+Q=="
+          "hash": "VVAFTg+k/Q+LvdbByooLyg=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -114,7 +126,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.AuthContext.html",
           "relative_path": "api/Grpc.Core.AuthContext.html",
-          "hash": "TV5rAWVuZ1gkU+loD+yIUA=="
+          "hash": "inCPx6thdyxDD9+K7mdR4Q=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -126,7 +138,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.AuthInterceptorContext.html",
           "relative_path": "api/Grpc.Core.AuthInterceptorContext.html",
-          "hash": "jAp3Sa9kd4Av6TyfwLEtUA=="
+          "hash": "SDV79SlUAO8ex4xAP6p7GA=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -144,13 +156,37 @@
       "is_incremental": false,
       "is_incremental": false,
       "version": ""
       "version": ""
     },
     },
+    {
+      "type": "ManagedReference",
+      "source_relative_path": "obj/api/Grpc.Core.BindServiceMethodAttribute.yml",
+      "output": {
+        ".html": {
+          "relative_path": "api/Grpc.Core.BindServiceMethodAttribute.html",
+          "hash": "yGeyZoQyYe0wGrhLVIBKQw=="
+        }
+      },
+      "is_incremental": false,
+      "version": ""
+    },
     {
     {
       "type": "ManagedReference",
       "type": "ManagedReference",
       "source_relative_path": "obj/api/Grpc.Core.CallCredentials.yml",
       "source_relative_path": "obj/api/Grpc.Core.CallCredentials.yml",
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.CallCredentials.html",
           "relative_path": "api/Grpc.Core.CallCredentials.html",
-          "hash": "on6LJBAvdKI2FUkZJhpOfQ=="
+          "hash": "TCij7cK0aFLo9OpkzeufZg=="
+        }
+      },
+      "is_incremental": false,
+      "version": ""
+    },
+    {
+      "type": "ManagedReference",
+      "source_relative_path": "obj/api/Grpc.Core.CallCredentialsConfiguratorBase.yml",
+      "output": {
+        ".html": {
+          "relative_path": "api/Grpc.Core.CallCredentialsConfiguratorBase.html",
+          "hash": "vvw9d02tw9Nxj6qimNBoYA=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -174,7 +210,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.CallInvoker.html",
           "relative_path": "api/Grpc.Core.CallInvoker.html",
-          "hash": "VfHch7o52mfl9C2WW73I3g=="
+          "hash": "vUv0H5o9xNqRiLL+LtWd6w=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -186,7 +222,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.CallOptions.html",
           "relative_path": "api/Grpc.Core.CallOptions.html",
-          "hash": "yKbSmRw5CGbiAoKJDoJjpw=="
+          "hash": "pJ+s9O74y2jo5csbwhGuvQ=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -210,7 +246,19 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.Channel.html",
           "relative_path": "api/Grpc.Core.Channel.html",
-          "hash": "Tp/yUhtCzdGjQLuKKOAIZQ=="
+          "hash": "UrsVNpd5smSOc+k0VtRNGw=="
+        }
+      },
+      "is_incremental": false,
+      "version": ""
+    },
+    {
+      "type": "ManagedReference",
+      "source_relative_path": "obj/api/Grpc.Core.ChannelBase.yml",
+      "output": {
+        ".html": {
+          "relative_path": "api/Grpc.Core.ChannelBase.html",
+          "hash": "XTrKTF5nS4acP7WpwILCcQ=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -222,7 +270,19 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.ChannelCredentials.html",
           "relative_path": "api/Grpc.Core.ChannelCredentials.html",
-          "hash": "ErhJjfTNogxrMk3MCp9efw=="
+          "hash": "5YHdlNt1SludtkJrbPNzdQ=="
+        }
+      },
+      "is_incremental": false,
+      "version": ""
+    },
+    {
+      "type": "ManagedReference",
+      "source_relative_path": "obj/api/Grpc.Core.ChannelCredentialsConfiguratorBase.yml",
+      "output": {
+        ".html": {
+          "relative_path": "api/Grpc.Core.ChannelCredentialsConfiguratorBase.html",
+          "hash": "x3Z8grGuMkRQkrGswVCzBQ=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -282,7 +342,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.ClientBase-1.html",
           "relative_path": "api/Grpc.Core.ClientBase-1.html",
-          "hash": "3RNGQqjjcIIXGqniqXQuBw=="
+          "hash": "Vln3oACpB4UfbwKdP2ZTzA=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -294,7 +354,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.ClientBase.ClientBaseConfiguration.html",
           "relative_path": "api/Grpc.Core.ClientBase.ClientBaseConfiguration.html",
-          "hash": "PQBNyIvDwUyt9cMKZ7et3g=="
+          "hash": "kbJUtcPiSMExeLJgEWEiZQ=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -306,7 +366,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.ClientBase.html",
           "relative_path": "api/Grpc.Core.ClientBase.html",
-          "hash": "VqLy11/QG1H8hEBN4IDJzQ=="
+          "hash": "NXp/F2g9C57B9O8Ha1D4LQ=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -366,7 +426,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.DefaultCallInvoker.html",
           "relative_path": "api/Grpc.Core.DefaultCallInvoker.html",
-          "hash": "NAkJzzOF+l0XX8oFhzvRlQ=="
+          "hash": "iefuE7khgLjHlY4w2L/Chg=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -378,7 +438,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.DeserializationContext.html",
           "relative_path": "api/Grpc.Core.DeserializationContext.html",
-          "hash": "ubQCZ5kcvbONuL2HbfAzMg=="
+          "hash": "krtK9aIrhP0IEUHfD5jHLw=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -414,7 +474,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.IAsyncStreamReader-1.html",
           "relative_path": "api/Grpc.Core.IAsyncStreamReader-1.html",
-          "hash": "8U8xtx2cvvazKlJ4jMky5Q=="
+          "hash": "9S44kxhScbwJVU9WbUj/4g=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -438,7 +498,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.IClientStreamWriter-1.html",
           "relative_path": "api/Grpc.Core.IClientStreamWriter-1.html",
-          "hash": "OGEVb7J+0Ihhpbm5JDW76w=="
+          "hash": "w8HmqoR5OmERyjHI35HGfA=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -474,7 +534,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.Interceptors.CallInvokerExtensions.html",
           "relative_path": "api/Grpc.Core.Interceptors.CallInvokerExtensions.html",
-          "hash": "EDsFkaQW0ej8/p14uE7gOA=="
+          "hash": "y+Lx7UKOIBsK7a7s4RwOCA=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -486,7 +546,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.Interceptors.ChannelExtensions.html",
           "relative_path": "api/Grpc.Core.Interceptors.ChannelExtensions.html",
-          "hash": "A9H1zLqfMeGj176dPv2YpQ=="
+          "hash": "kVCMbwR/y9c0Y5M+K+6aGQ=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -498,7 +558,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.Interceptors.ClientInterceptorContext-2.html",
           "relative_path": "api/Grpc.Core.Interceptors.ClientInterceptorContext-2.html",
-          "hash": "0U4eWMIZ1xbQfj73+cJFjw=="
+          "hash": "T95AhAO3oaXbKxXP7RGEPA=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -510,7 +570,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.Interceptors.Interceptor.AsyncClientStreamingCallContinuation-2.html",
           "relative_path": "api/Grpc.Core.Interceptors.Interceptor.AsyncClientStreamingCallContinuation-2.html",
-          "hash": "tghqoVIuJxdM/bQ+9gyhig=="
+          "hash": "y15m7og9uGcgpw6Mp04//Q=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -522,7 +582,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.Interceptors.Interceptor.AsyncDuplexStreamingCallContinuation-2.html",
           "relative_path": "api/Grpc.Core.Interceptors.Interceptor.AsyncDuplexStreamingCallContinuation-2.html",
-          "hash": "quPOZiMoMF6z4zSE90KFpQ=="
+          "hash": "fDDz5ubqFCIA8QFz2gRfEw=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -534,7 +594,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.Interceptors.Interceptor.AsyncServerStreamingCallContinuation-2.html",
           "relative_path": "api/Grpc.Core.Interceptors.Interceptor.AsyncServerStreamingCallContinuation-2.html",
-          "hash": "jloFf+4PbLTSla1mg0R9bA=="
+          "hash": "9eqgsjkVQZAE/W0AawofeA=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -546,7 +606,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.Interceptors.Interceptor.AsyncUnaryCallContinuation-2.html",
           "relative_path": "api/Grpc.Core.Interceptors.Interceptor.AsyncUnaryCallContinuation-2.html",
-          "hash": "ojLqdd9XZ+V/KTjkcQh9Fw=="
+          "hash": "w7zTfAeRuVyDLcvOzVRsWA=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -558,7 +618,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.Interceptors.Interceptor.BlockingUnaryCallContinuation-2.html",
           "relative_path": "api/Grpc.Core.Interceptors.Interceptor.BlockingUnaryCallContinuation-2.html",
-          "hash": "N+SqGTJa531vMfIZrOztPA=="
+          "hash": "NNR95UDQKqzrc6D29jcqOA=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -570,7 +630,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.Interceptors.Interceptor.html",
           "relative_path": "api/Grpc.Core.Interceptors.Interceptor.html",
-          "hash": "Rdat9kgUP+tSC5ZpLIoNYA=="
+          "hash": "GV6wrSt0hXByRP345zUq8w=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -606,7 +666,19 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.KeyCertificatePair.html",
           "relative_path": "api/Grpc.Core.KeyCertificatePair.html",
-          "hash": "mifluHWgxE8Chd+ndWn3uA=="
+          "hash": "PsS8AjF/MIDP6jRxWq3vPQ=="
+        }
+      },
+      "is_incremental": false,
+      "version": ""
+    },
+    {
+      "type": "ManagedReference",
+      "source_relative_path": "obj/api/Grpc.Core.LiteClientBase.yml",
+      "output": {
+        ".html": {
+          "relative_path": "api/Grpc.Core.LiteClientBase.html",
+          "hash": "LLqPprq57nW8c/AmOdK9XQ=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -834,7 +906,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.ServerCallContext.html",
           "relative_path": "api/Grpc.Core.ServerCallContext.html",
-          "hash": "axXpTFnPUel5r8SCw0Ny2g=="
+          "hash": "+CpS9o4aQ7tu95C51jIvDg=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -918,7 +990,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.SslClientCertificateRequestType.html",
           "relative_path": "api/Grpc.Core.SslClientCertificateRequestType.html",
-          "hash": "TTCS6TZibjYxDdhxDYYTLA=="
+          "hash": "jWh/7nm1s1SyEpNI/pa5TQ=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -930,7 +1002,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.SslCredentials.html",
           "relative_path": "api/Grpc.Core.SslCredentials.html",
-          "hash": "69nl1dL+cY1NuxYdPJFJhA=="
+          "hash": "vCrn3Q3DBk13aK0JbjWVVw=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -966,7 +1038,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.StatusCode.html",
           "relative_path": "api/Grpc.Core.StatusCode.html",
-          "hash": "+ppjo4uChuRlAS0PKQ+Ecg=="
+          "hash": "EnDKYmp7PUw6McDyTILVgQ=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -978,7 +1050,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.Testing.TestCalls.html",
           "relative_path": "api/Grpc.Core.Testing.TestCalls.html",
-          "hash": "5ltQeTX+fef+FqtuwEJZnQ=="
+          "hash": "ODbOLICEKD3eEdwV4lguKQ=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -1080,13 +1152,37 @@
       "is_incremental": false,
       "is_incremental": false,
       "version": ""
       "version": ""
     },
     },
+    {
+      "type": "ManagedReference",
+      "source_relative_path": "obj/api/Grpc.Core.VerifyPeerCallback.yml",
+      "output": {
+        ".html": {
+          "relative_path": "api/Grpc.Core.VerifyPeerCallback.html",
+          "hash": "czS01NJnsQjPCAsfGz5LrQ=="
+        }
+      },
+      "is_incremental": false,
+      "version": ""
+    },
+    {
+      "type": "ManagedReference",
+      "source_relative_path": "obj/api/Grpc.Core.VerifyPeerContext.yml",
+      "output": {
+        ".html": {
+          "relative_path": "api/Grpc.Core.VerifyPeerContext.html",
+          "hash": "Ol7/8jt670uzuk9Wogfw7g=="
+        }
+      },
+      "is_incremental": false,
+      "version": ""
+    },
     {
     {
       "type": "ManagedReference",
       "type": "ManagedReference",
       "source_relative_path": "obj/api/Grpc.Core.VersionInfo.yml",
       "source_relative_path": "obj/api/Grpc.Core.VersionInfo.yml",
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.VersionInfo.html",
           "relative_path": "api/Grpc.Core.VersionInfo.html",
-          "hash": "aleefZBs2SzezKvdUKCE0w=="
+          "hash": "jsupExsYZhjVvus0jYDHOg=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -1122,7 +1218,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.html",
           "relative_path": "api/Grpc.Core.html",
-          "hash": "4f7mt788VrjsLJbmpl5LXQ=="
+          "hash": "r5XrJUE9+5aApAxIu0LDuQ=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -1134,7 +1230,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Health.V1.Health.HealthBase.html",
           "relative_path": "api/Grpc.Health.V1.Health.HealthBase.html",
-          "hash": "aOdqCs0piSnp1tvmoSwBvA=="
+          "hash": "4cK0nP+NXpwR5ch2Jwc4YQ=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -1146,7 +1242,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Health.V1.Health.HealthClient.html",
           "relative_path": "api/Grpc.Health.V1.Health.HealthClient.html",
-          "hash": "hz+q3mMNa2zXTEmEe/KY4g=="
+          "hash": "kj2bTqxFJd9L+4sCiIN1RA=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -1242,7 +1338,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.HealthCheck.HealthServiceImpl.html",
           "relative_path": "api/Grpc.HealthCheck.HealthServiceImpl.html",
-          "hash": "oghmT1WYauCB7BGj6oEZqg=="
+          "hash": "CHyxEwc3c8aF7U+WNpyJdg=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -1266,7 +1362,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/toc.html",
           "relative_path": "api/toc.html",
-          "hash": "SElRUlPIjSdhHwAZlmOZeQ=="
+          "hash": "iLO5doLC7jmMRYjXZ1LJ/g=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,

+ 473 - 71
csharp/xrefmap.yml

@@ -496,6 +496,28 @@ references:
   fullName.vb: Grpc.Core.AsyncServerStreamingCall(Of TResponse).ResponseStream
   fullName.vb: Grpc.Core.AsyncServerStreamingCall(Of TResponse).ResponseStream
   nameWithType: AsyncServerStreamingCall<TResponse>.ResponseStream
   nameWithType: AsyncServerStreamingCall<TResponse>.ResponseStream
   nameWithType.vb: AsyncServerStreamingCall(Of TResponse).ResponseStream
   nameWithType.vb: AsyncServerStreamingCall(Of TResponse).ResponseStream
+- uid: Grpc.Core.AsyncStreamReaderExtensions
+  name: AsyncStreamReaderExtensions
+  href: api/Grpc.Core.AsyncStreamReaderExtensions.html
+  commentId: T:Grpc.Core.AsyncStreamReaderExtensions
+  fullName: Grpc.Core.AsyncStreamReaderExtensions
+  nameWithType: AsyncStreamReaderExtensions
+- uid: Grpc.Core.AsyncStreamReaderExtensions.MoveNext*
+  name: MoveNext
+  href: api/Grpc.Core.AsyncStreamReaderExtensions.html#Grpc_Core_AsyncStreamReaderExtensions_MoveNext_
+  commentId: Overload:Grpc.Core.AsyncStreamReaderExtensions.MoveNext
+  isSpec: "True"
+  fullName: Grpc.Core.AsyncStreamReaderExtensions.MoveNext
+  nameWithType: AsyncStreamReaderExtensions.MoveNext
+- uid: Grpc.Core.AsyncStreamReaderExtensions.MoveNext``1(Grpc.Core.IAsyncStreamReader{``0})
+  name: MoveNext<T>(IAsyncStreamReader<T>)
+  href: api/Grpc.Core.AsyncStreamReaderExtensions.html#Grpc_Core_AsyncStreamReaderExtensions_MoveNext__1_Grpc_Core_IAsyncStreamReader___0__
+  commentId: M:Grpc.Core.AsyncStreamReaderExtensions.MoveNext``1(Grpc.Core.IAsyncStreamReader{``0})
+  name.vb: MoveNext(Of T)(IAsyncStreamReader(Of T))
+  fullName: Grpc.Core.AsyncStreamReaderExtensions.MoveNext<T>(Grpc.Core.IAsyncStreamReader<T>)
+  fullName.vb: Grpc.Core.AsyncStreamReaderExtensions.MoveNext(Of T)(Grpc.Core.IAsyncStreamReader(Of T))
+  nameWithType: AsyncStreamReaderExtensions.MoveNext<T>(IAsyncStreamReader<T>)
+  nameWithType.vb: AsyncStreamReaderExtensions.MoveNext(Of T)(IAsyncStreamReader(Of T))
 - uid: Grpc.Core.AsyncUnaryCall`1
 - uid: Grpc.Core.AsyncUnaryCall`1
   name: AsyncUnaryCall<TResponse>
   name: AsyncUnaryCall<TResponse>
   href: api/Grpc.Core.AsyncUnaryCall-1.html
   href: api/Grpc.Core.AsyncUnaryCall-1.html
@@ -631,6 +653,22 @@ references:
   commentId: T:Grpc.Core.AuthContext
   commentId: T:Grpc.Core.AuthContext
   fullName: Grpc.Core.AuthContext
   fullName: Grpc.Core.AuthContext
   nameWithType: AuthContext
   nameWithType: AuthContext
+- uid: Grpc.Core.AuthContext.#ctor(System.String,System.Collections.Generic.Dictionary{System.String,System.Collections.Generic.List{Grpc.Core.AuthProperty}})
+  name: AuthContext(String, Dictionary<String, List<AuthProperty>>)
+  href: api/Grpc.Core.AuthContext.html#Grpc_Core_AuthContext__ctor_System_String_System_Collections_Generic_Dictionary_System_String_System_Collections_Generic_List_Grpc_Core_AuthProperty___
+  commentId: M:Grpc.Core.AuthContext.#ctor(System.String,System.Collections.Generic.Dictionary{System.String,System.Collections.Generic.List{Grpc.Core.AuthProperty}})
+  name.vb: AuthContext(String, Dictionary(Of String, List(Of AuthProperty)))
+  fullName: Grpc.Core.AuthContext.AuthContext(System.String, System.Collections.Generic.Dictionary<System.String, System.Collections.Generic.List<Grpc.Core.AuthProperty>>)
+  fullName.vb: Grpc.Core.AuthContext.AuthContext(System.String, System.Collections.Generic.Dictionary(Of System.String, System.Collections.Generic.List(Of Grpc.Core.AuthProperty)))
+  nameWithType: AuthContext.AuthContext(String, Dictionary<String, List<AuthProperty>>)
+  nameWithType.vb: AuthContext.AuthContext(String, Dictionary(Of String, List(Of AuthProperty)))
+- uid: Grpc.Core.AuthContext.#ctor*
+  name: AuthContext
+  href: api/Grpc.Core.AuthContext.html#Grpc_Core_AuthContext__ctor_
+  commentId: Overload:Grpc.Core.AuthContext.#ctor
+  isSpec: "True"
+  fullName: Grpc.Core.AuthContext.AuthContext
+  nameWithType: AuthContext.AuthContext
 - uid: Grpc.Core.AuthContext.FindPropertiesByName(System.String)
 - uid: Grpc.Core.AuthContext.FindPropertiesByName(System.String)
   name: FindPropertiesByName(String)
   name: FindPropertiesByName(String)
   href: api/Grpc.Core.AuthContext.html#Grpc_Core_AuthContext_FindPropertiesByName_System_String_
   href: api/Grpc.Core.AuthContext.html#Grpc_Core_AuthContext_FindPropertiesByName_System_String_
@@ -802,6 +840,51 @@ references:
   isSpec: "True"
   isSpec: "True"
   fullName: Grpc.Core.AuthProperty.ValueBytes
   fullName: Grpc.Core.AuthProperty.ValueBytes
   nameWithType: AuthProperty.ValueBytes
   nameWithType: AuthProperty.ValueBytes
+- uid: Grpc.Core.BindServiceMethodAttribute
+  name: BindServiceMethodAttribute
+  href: api/Grpc.Core.BindServiceMethodAttribute.html
+  commentId: T:Grpc.Core.BindServiceMethodAttribute
+  fullName: Grpc.Core.BindServiceMethodAttribute
+  nameWithType: BindServiceMethodAttribute
+- uid: Grpc.Core.BindServiceMethodAttribute.#ctor(System.Type,System.String)
+  name: BindServiceMethodAttribute(Type, String)
+  href: api/Grpc.Core.BindServiceMethodAttribute.html#Grpc_Core_BindServiceMethodAttribute__ctor_System_Type_System_String_
+  commentId: M:Grpc.Core.BindServiceMethodAttribute.#ctor(System.Type,System.String)
+  fullName: Grpc.Core.BindServiceMethodAttribute.BindServiceMethodAttribute(System.Type, System.String)
+  nameWithType: BindServiceMethodAttribute.BindServiceMethodAttribute(Type, String)
+- uid: Grpc.Core.BindServiceMethodAttribute.#ctor*
+  name: BindServiceMethodAttribute
+  href: api/Grpc.Core.BindServiceMethodAttribute.html#Grpc_Core_BindServiceMethodAttribute__ctor_
+  commentId: Overload:Grpc.Core.BindServiceMethodAttribute.#ctor
+  isSpec: "True"
+  fullName: Grpc.Core.BindServiceMethodAttribute.BindServiceMethodAttribute
+  nameWithType: BindServiceMethodAttribute.BindServiceMethodAttribute
+- uid: Grpc.Core.BindServiceMethodAttribute.BindMethodName
+  name: BindMethodName
+  href: api/Grpc.Core.BindServiceMethodAttribute.html#Grpc_Core_BindServiceMethodAttribute_BindMethodName
+  commentId: P:Grpc.Core.BindServiceMethodAttribute.BindMethodName
+  fullName: Grpc.Core.BindServiceMethodAttribute.BindMethodName
+  nameWithType: BindServiceMethodAttribute.BindMethodName
+- uid: Grpc.Core.BindServiceMethodAttribute.BindMethodName*
+  name: BindMethodName
+  href: api/Grpc.Core.BindServiceMethodAttribute.html#Grpc_Core_BindServiceMethodAttribute_BindMethodName_
+  commentId: Overload:Grpc.Core.BindServiceMethodAttribute.BindMethodName
+  isSpec: "True"
+  fullName: Grpc.Core.BindServiceMethodAttribute.BindMethodName
+  nameWithType: BindServiceMethodAttribute.BindMethodName
+- uid: Grpc.Core.BindServiceMethodAttribute.BindType
+  name: BindType
+  href: api/Grpc.Core.BindServiceMethodAttribute.html#Grpc_Core_BindServiceMethodAttribute_BindType
+  commentId: P:Grpc.Core.BindServiceMethodAttribute.BindType
+  fullName: Grpc.Core.BindServiceMethodAttribute.BindType
+  nameWithType: BindServiceMethodAttribute.BindType
+- uid: Grpc.Core.BindServiceMethodAttribute.BindType*
+  name: BindType
+  href: api/Grpc.Core.BindServiceMethodAttribute.html#Grpc_Core_BindServiceMethodAttribute_BindType_
+  commentId: Overload:Grpc.Core.BindServiceMethodAttribute.BindType
+  isSpec: "True"
+  fullName: Grpc.Core.BindServiceMethodAttribute.BindType
+  nameWithType: BindServiceMethodAttribute.BindType
 - uid: Grpc.Core.CallCredentials
 - uid: Grpc.Core.CallCredentials
   name: CallCredentials
   name: CallCredentials
   href: api/Grpc.Core.CallCredentials.html
   href: api/Grpc.Core.CallCredentials.html
@@ -837,6 +920,54 @@ references:
   isSpec: "True"
   isSpec: "True"
   fullName: Grpc.Core.CallCredentials.FromInterceptor
   fullName: Grpc.Core.CallCredentials.FromInterceptor
   nameWithType: CallCredentials.FromInterceptor
   nameWithType: CallCredentials.FromInterceptor
+- uid: Grpc.Core.CallCredentials.InternalPopulateConfiguration(Grpc.Core.CallCredentialsConfiguratorBase,System.Object)
+  name: InternalPopulateConfiguration(CallCredentialsConfiguratorBase, Object)
+  href: api/Grpc.Core.CallCredentials.html#Grpc_Core_CallCredentials_InternalPopulateConfiguration_Grpc_Core_CallCredentialsConfiguratorBase_System_Object_
+  commentId: M:Grpc.Core.CallCredentials.InternalPopulateConfiguration(Grpc.Core.CallCredentialsConfiguratorBase,System.Object)
+  fullName: Grpc.Core.CallCredentials.InternalPopulateConfiguration(Grpc.Core.CallCredentialsConfiguratorBase, System.Object)
+  nameWithType: CallCredentials.InternalPopulateConfiguration(CallCredentialsConfiguratorBase, Object)
+- uid: Grpc.Core.CallCredentials.InternalPopulateConfiguration*
+  name: InternalPopulateConfiguration
+  href: api/Grpc.Core.CallCredentials.html#Grpc_Core_CallCredentials_InternalPopulateConfiguration_
+  commentId: Overload:Grpc.Core.CallCredentials.InternalPopulateConfiguration
+  isSpec: "True"
+  fullName: Grpc.Core.CallCredentials.InternalPopulateConfiguration
+  nameWithType: CallCredentials.InternalPopulateConfiguration
+- uid: Grpc.Core.CallCredentialsConfiguratorBase
+  name: CallCredentialsConfiguratorBase
+  href: api/Grpc.Core.CallCredentialsConfiguratorBase.html
+  commentId: T:Grpc.Core.CallCredentialsConfiguratorBase
+  fullName: Grpc.Core.CallCredentialsConfiguratorBase
+  nameWithType: CallCredentialsConfiguratorBase
+- uid: Grpc.Core.CallCredentialsConfiguratorBase.SetAsyncAuthInterceptorCredentials(System.Object,Grpc.Core.AsyncAuthInterceptor)
+  name: SetAsyncAuthInterceptorCredentials(Object, AsyncAuthInterceptor)
+  href: api/Grpc.Core.CallCredentialsConfiguratorBase.html#Grpc_Core_CallCredentialsConfiguratorBase_SetAsyncAuthInterceptorCredentials_System_Object_Grpc_Core_AsyncAuthInterceptor_
+  commentId: M:Grpc.Core.CallCredentialsConfiguratorBase.SetAsyncAuthInterceptorCredentials(System.Object,Grpc.Core.AsyncAuthInterceptor)
+  fullName: Grpc.Core.CallCredentialsConfiguratorBase.SetAsyncAuthInterceptorCredentials(System.Object, Grpc.Core.AsyncAuthInterceptor)
+  nameWithType: CallCredentialsConfiguratorBase.SetAsyncAuthInterceptorCredentials(Object, AsyncAuthInterceptor)
+- uid: Grpc.Core.CallCredentialsConfiguratorBase.SetAsyncAuthInterceptorCredentials*
+  name: SetAsyncAuthInterceptorCredentials
+  href: api/Grpc.Core.CallCredentialsConfiguratorBase.html#Grpc_Core_CallCredentialsConfiguratorBase_SetAsyncAuthInterceptorCredentials_
+  commentId: Overload:Grpc.Core.CallCredentialsConfiguratorBase.SetAsyncAuthInterceptorCredentials
+  isSpec: "True"
+  fullName: Grpc.Core.CallCredentialsConfiguratorBase.SetAsyncAuthInterceptorCredentials
+  nameWithType: CallCredentialsConfiguratorBase.SetAsyncAuthInterceptorCredentials
+- uid: Grpc.Core.CallCredentialsConfiguratorBase.SetCompositeCredentials(System.Object,System.Collections.Generic.IReadOnlyList{Grpc.Core.CallCredentials})
+  name: SetCompositeCredentials(Object, IReadOnlyList<CallCredentials>)
+  href: api/Grpc.Core.CallCredentialsConfiguratorBase.html#Grpc_Core_CallCredentialsConfiguratorBase_SetCompositeCredentials_System_Object_System_Collections_Generic_IReadOnlyList_Grpc_Core_CallCredentials__
+  commentId: M:Grpc.Core.CallCredentialsConfiguratorBase.SetCompositeCredentials(System.Object,System.Collections.Generic.IReadOnlyList{Grpc.Core.CallCredentials})
+  name.vb: SetCompositeCredentials(Object, IReadOnlyList(Of CallCredentials))
+  fullName: Grpc.Core.CallCredentialsConfiguratorBase.SetCompositeCredentials(System.Object, System.Collections.Generic.IReadOnlyList<Grpc.Core.CallCredentials>)
+  fullName.vb: Grpc.Core.CallCredentialsConfiguratorBase.SetCompositeCredentials(System.Object, System.Collections.Generic.IReadOnlyList(Of Grpc.Core.CallCredentials))
+  nameWithType: CallCredentialsConfiguratorBase.SetCompositeCredentials(Object, IReadOnlyList<CallCredentials>)
+  nameWithType.vb: CallCredentialsConfiguratorBase.SetCompositeCredentials(Object, IReadOnlyList(Of CallCredentials))
+- uid: Grpc.Core.CallCredentialsConfiguratorBase.SetCompositeCredentials*
+  name: SetCompositeCredentials
+  href: api/Grpc.Core.CallCredentialsConfiguratorBase.html#Grpc_Core_CallCredentialsConfiguratorBase_SetCompositeCredentials_
+  commentId: Overload:Grpc.Core.CallCredentialsConfiguratorBase.SetCompositeCredentials
+  isSpec: "True"
+  fullName: Grpc.Core.CallCredentialsConfiguratorBase.SetCompositeCredentials
+  nameWithType: CallCredentialsConfiguratorBase.SetCompositeCredentials
 - uid: Grpc.Core.CallInvocationDetails`2
 - uid: Grpc.Core.CallInvocationDetails`2
   name: CallInvocationDetails<TRequest, TResponse>
   name: CallInvocationDetails<TRequest, TResponse>
   href: api/Grpc.Core.CallInvocationDetails-2.html
   href: api/Grpc.Core.CallInvocationDetails-2.html
@@ -1436,6 +1567,19 @@ references:
   isSpec: "True"
   isSpec: "True"
   fullName: Grpc.Core.Channel.ConnectAsync
   fullName: Grpc.Core.Channel.ConnectAsync
   nameWithType: Channel.ConnectAsync
   nameWithType: Channel.ConnectAsync
+- uid: Grpc.Core.Channel.CreateCallInvoker
+  name: CreateCallInvoker()
+  href: api/Grpc.Core.Channel.html#Grpc_Core_Channel_CreateCallInvoker
+  commentId: M:Grpc.Core.Channel.CreateCallInvoker
+  fullName: Grpc.Core.Channel.CreateCallInvoker()
+  nameWithType: Channel.CreateCallInvoker()
+- uid: Grpc.Core.Channel.CreateCallInvoker*
+  name: CreateCallInvoker
+  href: api/Grpc.Core.Channel.html#Grpc_Core_Channel_CreateCallInvoker_
+  commentId: Overload:Grpc.Core.Channel.CreateCallInvoker
+  isSpec: "True"
+  fullName: Grpc.Core.Channel.CreateCallInvoker
+  nameWithType: Channel.CreateCallInvoker
 - uid: Grpc.Core.Channel.ResolvedTarget
 - uid: Grpc.Core.Channel.ResolvedTarget
   name: ResolvedTarget
   name: ResolvedTarget
   href: api/Grpc.Core.Channel.html#Grpc_Core_Channel_ResolvedTarget
   href: api/Grpc.Core.Channel.html#Grpc_Core_Channel_ResolvedTarget
@@ -1488,19 +1632,6 @@ references:
   isSpec: "True"
   isSpec: "True"
   fullName: Grpc.Core.Channel.State
   fullName: Grpc.Core.Channel.State
   nameWithType: Channel.State
   nameWithType: Channel.State
-- uid: Grpc.Core.Channel.Target
-  name: Target
-  href: api/Grpc.Core.Channel.html#Grpc_Core_Channel_Target
-  commentId: P:Grpc.Core.Channel.Target
-  fullName: Grpc.Core.Channel.Target
-  nameWithType: Channel.Target
-- uid: Grpc.Core.Channel.Target*
-  name: Target
-  href: api/Grpc.Core.Channel.html#Grpc_Core_Channel_Target_
-  commentId: Overload:Grpc.Core.Channel.Target
-  isSpec: "True"
-  fullName: Grpc.Core.Channel.Target
-  nameWithType: Channel.Target
 - uid: Grpc.Core.Channel.TryWaitForStateChangedAsync(Grpc.Core.ChannelState,System.Nullable{System.DateTime})
 - uid: Grpc.Core.Channel.TryWaitForStateChangedAsync(Grpc.Core.ChannelState,System.Nullable{System.DateTime})
   name: TryWaitForStateChangedAsync(ChannelState, Nullable<DateTime>)
   name: TryWaitForStateChangedAsync(ChannelState, Nullable<DateTime>)
   href: api/Grpc.Core.Channel.html#Grpc_Core_Channel_TryWaitForStateChangedAsync_Grpc_Core_ChannelState_System_Nullable_System_DateTime__
   href: api/Grpc.Core.Channel.html#Grpc_Core_Channel_TryWaitForStateChangedAsync_Grpc_Core_ChannelState_System_Nullable_System_DateTime__
@@ -1533,6 +1664,51 @@ references:
   isSpec: "True"
   isSpec: "True"
   fullName: Grpc.Core.Channel.WaitForStateChangedAsync
   fullName: Grpc.Core.Channel.WaitForStateChangedAsync
   nameWithType: Channel.WaitForStateChangedAsync
   nameWithType: Channel.WaitForStateChangedAsync
+- uid: Grpc.Core.ChannelBase
+  name: ChannelBase
+  href: api/Grpc.Core.ChannelBase.html
+  commentId: T:Grpc.Core.ChannelBase
+  fullName: Grpc.Core.ChannelBase
+  nameWithType: ChannelBase
+- uid: Grpc.Core.ChannelBase.#ctor(System.String)
+  name: ChannelBase(String)
+  href: api/Grpc.Core.ChannelBase.html#Grpc_Core_ChannelBase__ctor_System_String_
+  commentId: M:Grpc.Core.ChannelBase.#ctor(System.String)
+  fullName: Grpc.Core.ChannelBase.ChannelBase(System.String)
+  nameWithType: ChannelBase.ChannelBase(String)
+- uid: Grpc.Core.ChannelBase.#ctor*
+  name: ChannelBase
+  href: api/Grpc.Core.ChannelBase.html#Grpc_Core_ChannelBase__ctor_
+  commentId: Overload:Grpc.Core.ChannelBase.#ctor
+  isSpec: "True"
+  fullName: Grpc.Core.ChannelBase.ChannelBase
+  nameWithType: ChannelBase.ChannelBase
+- uid: Grpc.Core.ChannelBase.CreateCallInvoker
+  name: CreateCallInvoker()
+  href: api/Grpc.Core.ChannelBase.html#Grpc_Core_ChannelBase_CreateCallInvoker
+  commentId: M:Grpc.Core.ChannelBase.CreateCallInvoker
+  fullName: Grpc.Core.ChannelBase.CreateCallInvoker()
+  nameWithType: ChannelBase.CreateCallInvoker()
+- uid: Grpc.Core.ChannelBase.CreateCallInvoker*
+  name: CreateCallInvoker
+  href: api/Grpc.Core.ChannelBase.html#Grpc_Core_ChannelBase_CreateCallInvoker_
+  commentId: Overload:Grpc.Core.ChannelBase.CreateCallInvoker
+  isSpec: "True"
+  fullName: Grpc.Core.ChannelBase.CreateCallInvoker
+  nameWithType: ChannelBase.CreateCallInvoker
+- uid: Grpc.Core.ChannelBase.Target
+  name: Target
+  href: api/Grpc.Core.ChannelBase.html#Grpc_Core_ChannelBase_Target
+  commentId: P:Grpc.Core.ChannelBase.Target
+  fullName: Grpc.Core.ChannelBase.Target
+  nameWithType: ChannelBase.Target
+- uid: Grpc.Core.ChannelBase.Target*
+  name: Target
+  href: api/Grpc.Core.ChannelBase.html#Grpc_Core_ChannelBase_Target_
+  commentId: Overload:Grpc.Core.ChannelBase.Target
+  isSpec: "True"
+  fullName: Grpc.Core.ChannelBase.Target
+  nameWithType: ChannelBase.Target
 - uid: Grpc.Core.ChannelCredentials
 - uid: Grpc.Core.ChannelCredentials
   name: ChannelCredentials
   name: ChannelCredentials
   href: api/Grpc.Core.ChannelCredentials.html
   href: api/Grpc.Core.ChannelCredentials.html
@@ -1578,6 +1754,64 @@ references:
   isSpec: "True"
   isSpec: "True"
   fullName: Grpc.Core.ChannelCredentials.Insecure
   fullName: Grpc.Core.ChannelCredentials.Insecure
   nameWithType: ChannelCredentials.Insecure
   nameWithType: ChannelCredentials.Insecure
+- uid: Grpc.Core.ChannelCredentials.InternalPopulateConfiguration(Grpc.Core.ChannelCredentialsConfiguratorBase,System.Object)
+  name: InternalPopulateConfiguration(ChannelCredentialsConfiguratorBase, Object)
+  href: api/Grpc.Core.ChannelCredentials.html#Grpc_Core_ChannelCredentials_InternalPopulateConfiguration_Grpc_Core_ChannelCredentialsConfiguratorBase_System_Object_
+  commentId: M:Grpc.Core.ChannelCredentials.InternalPopulateConfiguration(Grpc.Core.ChannelCredentialsConfiguratorBase,System.Object)
+  fullName: Grpc.Core.ChannelCredentials.InternalPopulateConfiguration(Grpc.Core.ChannelCredentialsConfiguratorBase, System.Object)
+  nameWithType: ChannelCredentials.InternalPopulateConfiguration(ChannelCredentialsConfiguratorBase, Object)
+- uid: Grpc.Core.ChannelCredentials.InternalPopulateConfiguration*
+  name: InternalPopulateConfiguration
+  href: api/Grpc.Core.ChannelCredentials.html#Grpc_Core_ChannelCredentials_InternalPopulateConfiguration_
+  commentId: Overload:Grpc.Core.ChannelCredentials.InternalPopulateConfiguration
+  isSpec: "True"
+  fullName: Grpc.Core.ChannelCredentials.InternalPopulateConfiguration
+  nameWithType: ChannelCredentials.InternalPopulateConfiguration
+- uid: Grpc.Core.ChannelCredentialsConfiguratorBase
+  name: ChannelCredentialsConfiguratorBase
+  href: api/Grpc.Core.ChannelCredentialsConfiguratorBase.html
+  commentId: T:Grpc.Core.ChannelCredentialsConfiguratorBase
+  fullName: Grpc.Core.ChannelCredentialsConfiguratorBase
+  nameWithType: ChannelCredentialsConfiguratorBase
+- uid: Grpc.Core.ChannelCredentialsConfiguratorBase.SetCompositeCredentials(System.Object,Grpc.Core.ChannelCredentials,Grpc.Core.CallCredentials)
+  name: SetCompositeCredentials(Object, ChannelCredentials, CallCredentials)
+  href: api/Grpc.Core.ChannelCredentialsConfiguratorBase.html#Grpc_Core_ChannelCredentialsConfiguratorBase_SetCompositeCredentials_System_Object_Grpc_Core_ChannelCredentials_Grpc_Core_CallCredentials_
+  commentId: M:Grpc.Core.ChannelCredentialsConfiguratorBase.SetCompositeCredentials(System.Object,Grpc.Core.ChannelCredentials,Grpc.Core.CallCredentials)
+  fullName: Grpc.Core.ChannelCredentialsConfiguratorBase.SetCompositeCredentials(System.Object, Grpc.Core.ChannelCredentials, Grpc.Core.CallCredentials)
+  nameWithType: ChannelCredentialsConfiguratorBase.SetCompositeCredentials(Object, ChannelCredentials, CallCredentials)
+- uid: Grpc.Core.ChannelCredentialsConfiguratorBase.SetCompositeCredentials*
+  name: SetCompositeCredentials
+  href: api/Grpc.Core.ChannelCredentialsConfiguratorBase.html#Grpc_Core_ChannelCredentialsConfiguratorBase_SetCompositeCredentials_
+  commentId: Overload:Grpc.Core.ChannelCredentialsConfiguratorBase.SetCompositeCredentials
+  isSpec: "True"
+  fullName: Grpc.Core.ChannelCredentialsConfiguratorBase.SetCompositeCredentials
+  nameWithType: ChannelCredentialsConfiguratorBase.SetCompositeCredentials
+- uid: Grpc.Core.ChannelCredentialsConfiguratorBase.SetInsecureCredentials(System.Object)
+  name: SetInsecureCredentials(Object)
+  href: api/Grpc.Core.ChannelCredentialsConfiguratorBase.html#Grpc_Core_ChannelCredentialsConfiguratorBase_SetInsecureCredentials_System_Object_
+  commentId: M:Grpc.Core.ChannelCredentialsConfiguratorBase.SetInsecureCredentials(System.Object)
+  fullName: Grpc.Core.ChannelCredentialsConfiguratorBase.SetInsecureCredentials(System.Object)
+  nameWithType: ChannelCredentialsConfiguratorBase.SetInsecureCredentials(Object)
+- uid: Grpc.Core.ChannelCredentialsConfiguratorBase.SetInsecureCredentials*
+  name: SetInsecureCredentials
+  href: api/Grpc.Core.ChannelCredentialsConfiguratorBase.html#Grpc_Core_ChannelCredentialsConfiguratorBase_SetInsecureCredentials_
+  commentId: Overload:Grpc.Core.ChannelCredentialsConfiguratorBase.SetInsecureCredentials
+  isSpec: "True"
+  fullName: Grpc.Core.ChannelCredentialsConfiguratorBase.SetInsecureCredentials
+  nameWithType: ChannelCredentialsConfiguratorBase.SetInsecureCredentials
+- uid: Grpc.Core.ChannelCredentialsConfiguratorBase.SetSslCredentials(System.Object,System.String,Grpc.Core.KeyCertificatePair,Grpc.Core.VerifyPeerCallback)
+  name: SetSslCredentials(Object, String, KeyCertificatePair, VerifyPeerCallback)
+  href: api/Grpc.Core.ChannelCredentialsConfiguratorBase.html#Grpc_Core_ChannelCredentialsConfiguratorBase_SetSslCredentials_System_Object_System_String_Grpc_Core_KeyCertificatePair_Grpc_Core_VerifyPeerCallback_
+  commentId: M:Grpc.Core.ChannelCredentialsConfiguratorBase.SetSslCredentials(System.Object,System.String,Grpc.Core.KeyCertificatePair,Grpc.Core.VerifyPeerCallback)
+  fullName: Grpc.Core.ChannelCredentialsConfiguratorBase.SetSslCredentials(System.Object, System.String, Grpc.Core.KeyCertificatePair, Grpc.Core.VerifyPeerCallback)
+  nameWithType: ChannelCredentialsConfiguratorBase.SetSslCredentials(Object, String, KeyCertificatePair, VerifyPeerCallback)
+- uid: Grpc.Core.ChannelCredentialsConfiguratorBase.SetSslCredentials*
+  name: SetSslCredentials
+  href: api/Grpc.Core.ChannelCredentialsConfiguratorBase.html#Grpc_Core_ChannelCredentialsConfiguratorBase_SetSslCredentials_
+  commentId: Overload:Grpc.Core.ChannelCredentialsConfiguratorBase.SetSslCredentials
+  isSpec: "True"
+  fullName: Grpc.Core.ChannelCredentialsConfiguratorBase.SetSslCredentials
+  nameWithType: ChannelCredentialsConfiguratorBase.SetSslCredentials
 - uid: Grpc.Core.ChannelOption
 - uid: Grpc.Core.ChannelOption
   name: ChannelOption
   name: ChannelOption
   href: api/Grpc.Core.ChannelOption.html
   href: api/Grpc.Core.ChannelOption.html
@@ -1857,12 +2091,12 @@ references:
   commentId: M:Grpc.Core.ClientBase.#ctor(Grpc.Core.CallInvoker)
   commentId: M:Grpc.Core.ClientBase.#ctor(Grpc.Core.CallInvoker)
   fullName: Grpc.Core.ClientBase.ClientBase(Grpc.Core.CallInvoker)
   fullName: Grpc.Core.ClientBase.ClientBase(Grpc.Core.CallInvoker)
   nameWithType: ClientBase.ClientBase(CallInvoker)
   nameWithType: ClientBase.ClientBase(CallInvoker)
-- uid: Grpc.Core.ClientBase.#ctor(Grpc.Core.Channel)
-  name: ClientBase(Channel)
-  href: api/Grpc.Core.ClientBase.html#Grpc_Core_ClientBase__ctor_Grpc_Core_Channel_
-  commentId: M:Grpc.Core.ClientBase.#ctor(Grpc.Core.Channel)
-  fullName: Grpc.Core.ClientBase.ClientBase(Grpc.Core.Channel)
-  nameWithType: ClientBase.ClientBase(Channel)
+- uid: Grpc.Core.ClientBase.#ctor(Grpc.Core.ChannelBase)
+  name: ClientBase(ChannelBase)
+  href: api/Grpc.Core.ClientBase.html#Grpc_Core_ClientBase__ctor_Grpc_Core_ChannelBase_
+  commentId: M:Grpc.Core.ClientBase.#ctor(Grpc.Core.ChannelBase)
+  fullName: Grpc.Core.ClientBase.ClientBase(Grpc.Core.ChannelBase)
+  nameWithType: ClientBase.ClientBase(ChannelBase)
 - uid: Grpc.Core.ClientBase.#ctor(Grpc.Core.ClientBase.ClientBaseConfiguration)
 - uid: Grpc.Core.ClientBase.#ctor(Grpc.Core.ClientBase.ClientBaseConfiguration)
   name: ClientBase(ClientBase.ClientBaseConfiguration)
   name: ClientBase(ClientBase.ClientBaseConfiguration)
   href: api/Grpc.Core.ClientBase.html#Grpc_Core_ClientBase__ctor_Grpc_Core_ClientBase_ClientBaseConfiguration_
   href: api/Grpc.Core.ClientBase.html#Grpc_Core_ClientBase__ctor_Grpc_Core_ClientBase_ClientBaseConfiguration_
@@ -1920,14 +2154,14 @@ references:
   fullName.vb: Grpc.Core.ClientBase(Of T).ClientBase(Grpc.Core.CallInvoker)
   fullName.vb: Grpc.Core.ClientBase(Of T).ClientBase(Grpc.Core.CallInvoker)
   nameWithType: ClientBase<T>.ClientBase(CallInvoker)
   nameWithType: ClientBase<T>.ClientBase(CallInvoker)
   nameWithType.vb: ClientBase(Of T).ClientBase(CallInvoker)
   nameWithType.vb: ClientBase(Of T).ClientBase(CallInvoker)
-- uid: Grpc.Core.ClientBase`1.#ctor(Grpc.Core.Channel)
-  name: ClientBase(Channel)
-  href: api/Grpc.Core.ClientBase-1.html#Grpc_Core_ClientBase_1__ctor_Grpc_Core_Channel_
-  commentId: M:Grpc.Core.ClientBase`1.#ctor(Grpc.Core.Channel)
-  fullName: Grpc.Core.ClientBase<T>.ClientBase(Grpc.Core.Channel)
-  fullName.vb: Grpc.Core.ClientBase(Of T).ClientBase(Grpc.Core.Channel)
-  nameWithType: ClientBase<T>.ClientBase(Channel)
-  nameWithType.vb: ClientBase(Of T).ClientBase(Channel)
+- uid: Grpc.Core.ClientBase`1.#ctor(Grpc.Core.ChannelBase)
+  name: ClientBase(ChannelBase)
+  href: api/Grpc.Core.ClientBase-1.html#Grpc_Core_ClientBase_1__ctor_Grpc_Core_ChannelBase_
+  commentId: M:Grpc.Core.ClientBase`1.#ctor(Grpc.Core.ChannelBase)
+  fullName: Grpc.Core.ClientBase<T>.ClientBase(Grpc.Core.ChannelBase)
+  fullName.vb: Grpc.Core.ClientBase(Of T).ClientBase(Grpc.Core.ChannelBase)
+  nameWithType: ClientBase<T>.ClientBase(ChannelBase)
+  nameWithType.vb: ClientBase(Of T).ClientBase(ChannelBase)
 - uid: Grpc.Core.ClientBase`1.#ctor(Grpc.Core.ClientBase.ClientBaseConfiguration)
 - uid: Grpc.Core.ClientBase`1.#ctor(Grpc.Core.ClientBase.ClientBaseConfiguration)
   name: ClientBase(ClientBase.ClientBaseConfiguration)
   name: ClientBase(ClientBase.ClientBaseConfiguration)
   href: api/Grpc.Core.ClientBase-1.html#Grpc_Core_ClientBase_1__ctor_Grpc_Core_ClientBase_ClientBaseConfiguration_
   href: api/Grpc.Core.ClientBase-1.html#Grpc_Core_ClientBase_1__ctor_Grpc_Core_ClientBase_ClientBaseConfiguration_
@@ -2209,6 +2443,19 @@ references:
   isSpec: "True"
   isSpec: "True"
   fullName: Grpc.Core.DeserializationContext.PayloadAsNewBuffer
   fullName: Grpc.Core.DeserializationContext.PayloadAsNewBuffer
   nameWithType: DeserializationContext.PayloadAsNewBuffer
   nameWithType: DeserializationContext.PayloadAsNewBuffer
+- uid: Grpc.Core.DeserializationContext.PayloadAsReadOnlySequence
+  name: PayloadAsReadOnlySequence()
+  href: api/Grpc.Core.DeserializationContext.html#Grpc_Core_DeserializationContext_PayloadAsReadOnlySequence
+  commentId: M:Grpc.Core.DeserializationContext.PayloadAsReadOnlySequence
+  fullName: Grpc.Core.DeserializationContext.PayloadAsReadOnlySequence()
+  nameWithType: DeserializationContext.PayloadAsReadOnlySequence()
+- uid: Grpc.Core.DeserializationContext.PayloadAsReadOnlySequence*
+  name: PayloadAsReadOnlySequence
+  href: api/Grpc.Core.DeserializationContext.html#Grpc_Core_DeserializationContext_PayloadAsReadOnlySequence_
+  commentId: Overload:Grpc.Core.DeserializationContext.PayloadAsReadOnlySequence
+  isSpec: "True"
+  fullName: Grpc.Core.DeserializationContext.PayloadAsReadOnlySequence
+  nameWithType: DeserializationContext.PayloadAsReadOnlySequence
 - uid: Grpc.Core.DeserializationContext.PayloadLength
 - uid: Grpc.Core.DeserializationContext.PayloadLength
   name: PayloadLength
   name: PayloadLength
   href: api/Grpc.Core.DeserializationContext.html#Grpc_Core_DeserializationContext_PayloadLength
   href: api/Grpc.Core.DeserializationContext.html#Grpc_Core_DeserializationContext_PayloadLength
@@ -2369,6 +2616,40 @@ references:
   fullName.vb: Grpc.Core.IAsyncStreamReader(Of T)
   fullName.vb: Grpc.Core.IAsyncStreamReader(Of T)
   nameWithType: IAsyncStreamReader<T>
   nameWithType: IAsyncStreamReader<T>
   nameWithType.vb: IAsyncStreamReader(Of T)
   nameWithType.vb: IAsyncStreamReader(Of T)
+- uid: Grpc.Core.IAsyncStreamReader`1.Current
+  name: Current
+  href: api/Grpc.Core.IAsyncStreamReader-1.html#Grpc_Core_IAsyncStreamReader_1_Current
+  commentId: P:Grpc.Core.IAsyncStreamReader`1.Current
+  fullName: Grpc.Core.IAsyncStreamReader<T>.Current
+  fullName.vb: Grpc.Core.IAsyncStreamReader(Of T).Current
+  nameWithType: IAsyncStreamReader<T>.Current
+  nameWithType.vb: IAsyncStreamReader(Of T).Current
+- uid: Grpc.Core.IAsyncStreamReader`1.Current*
+  name: Current
+  href: api/Grpc.Core.IAsyncStreamReader-1.html#Grpc_Core_IAsyncStreamReader_1_Current_
+  commentId: Overload:Grpc.Core.IAsyncStreamReader`1.Current
+  isSpec: "True"
+  fullName: Grpc.Core.IAsyncStreamReader<T>.Current
+  fullName.vb: Grpc.Core.IAsyncStreamReader(Of T).Current
+  nameWithType: IAsyncStreamReader<T>.Current
+  nameWithType.vb: IAsyncStreamReader(Of T).Current
+- uid: Grpc.Core.IAsyncStreamReader`1.MoveNext(System.Threading.CancellationToken)
+  name: MoveNext(CancellationToken)
+  href: api/Grpc.Core.IAsyncStreamReader-1.html#Grpc_Core_IAsyncStreamReader_1_MoveNext_System_Threading_CancellationToken_
+  commentId: M:Grpc.Core.IAsyncStreamReader`1.MoveNext(System.Threading.CancellationToken)
+  fullName: Grpc.Core.IAsyncStreamReader<T>.MoveNext(System.Threading.CancellationToken)
+  fullName.vb: Grpc.Core.IAsyncStreamReader(Of T).MoveNext(System.Threading.CancellationToken)
+  nameWithType: IAsyncStreamReader<T>.MoveNext(CancellationToken)
+  nameWithType.vb: IAsyncStreamReader(Of T).MoveNext(CancellationToken)
+- uid: Grpc.Core.IAsyncStreamReader`1.MoveNext*
+  name: MoveNext
+  href: api/Grpc.Core.IAsyncStreamReader-1.html#Grpc_Core_IAsyncStreamReader_1_MoveNext_
+  commentId: Overload:Grpc.Core.IAsyncStreamReader`1.MoveNext
+  isSpec: "True"
+  fullName: Grpc.Core.IAsyncStreamReader<T>.MoveNext
+  fullName.vb: Grpc.Core.IAsyncStreamReader(Of T).MoveNext
+  nameWithType: IAsyncStreamReader<T>.MoveNext
+  nameWithType.vb: IAsyncStreamReader(Of T).MoveNext
 - uid: Grpc.Core.IAsyncStreamWriter`1
 - uid: Grpc.Core.IAsyncStreamWriter`1
   name: IAsyncStreamWriter<T>
   name: IAsyncStreamWriter<T>
   href: api/Grpc.Core.IAsyncStreamWriter-1.html
   href: api/Grpc.Core.IAsyncStreamWriter-1.html
@@ -2545,30 +2826,30 @@ references:
   commentId: T:Grpc.Core.Interceptors.ChannelExtensions
   commentId: T:Grpc.Core.Interceptors.ChannelExtensions
   fullName: Grpc.Core.Interceptors.ChannelExtensions
   fullName: Grpc.Core.Interceptors.ChannelExtensions
   nameWithType: ChannelExtensions
   nameWithType: ChannelExtensions
-- uid: Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.Channel,Grpc.Core.Interceptors.Interceptor)
-  name: Intercept(Channel, Interceptor)
-  href: api/Grpc.Core.Interceptors.ChannelExtensions.html#Grpc_Core_Interceptors_ChannelExtensions_Intercept_Grpc_Core_Channel_Grpc_Core_Interceptors_Interceptor_
-  commentId: M:Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.Channel,Grpc.Core.Interceptors.Interceptor)
-  fullName: Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.Channel, Grpc.Core.Interceptors.Interceptor)
-  nameWithType: ChannelExtensions.Intercept(Channel, Interceptor)
-- uid: Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.Channel,Grpc.Core.Interceptors.Interceptor[])
-  name: Intercept(Channel, Interceptor[])
-  href: api/Grpc.Core.Interceptors.ChannelExtensions.html#Grpc_Core_Interceptors_ChannelExtensions_Intercept_Grpc_Core_Channel_Grpc_Core_Interceptors_Interceptor___
-  commentId: M:Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.Channel,Grpc.Core.Interceptors.Interceptor[])
-  name.vb: Intercept(Channel, Interceptor())
-  fullName: Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.Channel, Grpc.Core.Interceptors.Interceptor[])
-  fullName.vb: Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.Channel, Grpc.Core.Interceptors.Interceptor())
-  nameWithType: ChannelExtensions.Intercept(Channel, Interceptor[])
-  nameWithType.vb: ChannelExtensions.Intercept(Channel, Interceptor())
-- uid: Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.Channel,System.Func{Grpc.Core.Metadata,Grpc.Core.Metadata})
-  name: Intercept(Channel, Func<Metadata, Metadata>)
-  href: api/Grpc.Core.Interceptors.ChannelExtensions.html#Grpc_Core_Interceptors_ChannelExtensions_Intercept_Grpc_Core_Channel_System_Func_Grpc_Core_Metadata_Grpc_Core_Metadata__
-  commentId: M:Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.Channel,System.Func{Grpc.Core.Metadata,Grpc.Core.Metadata})
-  name.vb: Intercept(Channel, Func(Of Metadata, Metadata))
-  fullName: Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.Channel, System.Func<Grpc.Core.Metadata, Grpc.Core.Metadata>)
-  fullName.vb: Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.Channel, System.Func(Of Grpc.Core.Metadata, Grpc.Core.Metadata))
-  nameWithType: ChannelExtensions.Intercept(Channel, Func<Metadata, Metadata>)
-  nameWithType.vb: ChannelExtensions.Intercept(Channel, Func(Of Metadata, Metadata))
+- uid: Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.ChannelBase,Grpc.Core.Interceptors.Interceptor)
+  name: Intercept(ChannelBase, Interceptor)
+  href: api/Grpc.Core.Interceptors.ChannelExtensions.html#Grpc_Core_Interceptors_ChannelExtensions_Intercept_Grpc_Core_ChannelBase_Grpc_Core_Interceptors_Interceptor_
+  commentId: M:Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.ChannelBase,Grpc.Core.Interceptors.Interceptor)
+  fullName: Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.ChannelBase, Grpc.Core.Interceptors.Interceptor)
+  nameWithType: ChannelExtensions.Intercept(ChannelBase, Interceptor)
+- uid: Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.ChannelBase,Grpc.Core.Interceptors.Interceptor[])
+  name: Intercept(ChannelBase, Interceptor[])
+  href: api/Grpc.Core.Interceptors.ChannelExtensions.html#Grpc_Core_Interceptors_ChannelExtensions_Intercept_Grpc_Core_ChannelBase_Grpc_Core_Interceptors_Interceptor___
+  commentId: M:Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.ChannelBase,Grpc.Core.Interceptors.Interceptor[])
+  name.vb: Intercept(ChannelBase, Interceptor())
+  fullName: Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.ChannelBase, Grpc.Core.Interceptors.Interceptor[])
+  fullName.vb: Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.ChannelBase, Grpc.Core.Interceptors.Interceptor())
+  nameWithType: ChannelExtensions.Intercept(ChannelBase, Interceptor[])
+  nameWithType.vb: ChannelExtensions.Intercept(ChannelBase, Interceptor())
+- uid: Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.ChannelBase,System.Func{Grpc.Core.Metadata,Grpc.Core.Metadata})
+  name: Intercept(ChannelBase, Func<Metadata, Metadata>)
+  href: api/Grpc.Core.Interceptors.ChannelExtensions.html#Grpc_Core_Interceptors_ChannelExtensions_Intercept_Grpc_Core_ChannelBase_System_Func_Grpc_Core_Metadata_Grpc_Core_Metadata__
+  commentId: M:Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.ChannelBase,System.Func{Grpc.Core.Metadata,Grpc.Core.Metadata})
+  name.vb: Intercept(ChannelBase, Func(Of Metadata, Metadata))
+  fullName: Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.ChannelBase, System.Func<Grpc.Core.Metadata, Grpc.Core.Metadata>)
+  fullName.vb: Grpc.Core.Interceptors.ChannelExtensions.Intercept(Grpc.Core.ChannelBase, System.Func(Of Grpc.Core.Metadata, Grpc.Core.Metadata))
+  nameWithType: ChannelExtensions.Intercept(ChannelBase, Func<Metadata, Metadata>)
+  nameWithType.vb: ChannelExtensions.Intercept(ChannelBase, Func(Of Metadata, Metadata))
 - uid: Grpc.Core.Interceptors.ChannelExtensions.Intercept*
 - uid: Grpc.Core.Interceptors.ChannelExtensions.Intercept*
   name: Intercept
   name: Intercept
   href: api/Grpc.Core.Interceptors.ChannelExtensions.html#Grpc_Core_Interceptors_ChannelExtensions_Intercept_
   href: api/Grpc.Core.Interceptors.ChannelExtensions.html#Grpc_Core_Interceptors_ChannelExtensions_Intercept_
@@ -2931,6 +3212,44 @@ references:
   isSpec: "True"
   isSpec: "True"
   fullName: Grpc.Core.KeyCertificatePair.PrivateKey
   fullName: Grpc.Core.KeyCertificatePair.PrivateKey
   nameWithType: KeyCertificatePair.PrivateKey
   nameWithType: KeyCertificatePair.PrivateKey
+- uid: Grpc.Core.LiteClientBase
+  name: LiteClientBase
+  href: api/Grpc.Core.LiteClientBase.html
+  commentId: T:Grpc.Core.LiteClientBase
+  fullName: Grpc.Core.LiteClientBase
+  nameWithType: LiteClientBase
+- uid: Grpc.Core.LiteClientBase.#ctor
+  name: LiteClientBase()
+  href: api/Grpc.Core.LiteClientBase.html#Grpc_Core_LiteClientBase__ctor
+  commentId: M:Grpc.Core.LiteClientBase.#ctor
+  fullName: Grpc.Core.LiteClientBase.LiteClientBase()
+  nameWithType: LiteClientBase.LiteClientBase()
+- uid: Grpc.Core.LiteClientBase.#ctor(Grpc.Core.CallInvoker)
+  name: LiteClientBase(CallInvoker)
+  href: api/Grpc.Core.LiteClientBase.html#Grpc_Core_LiteClientBase__ctor_Grpc_Core_CallInvoker_
+  commentId: M:Grpc.Core.LiteClientBase.#ctor(Grpc.Core.CallInvoker)
+  fullName: Grpc.Core.LiteClientBase.LiteClientBase(Grpc.Core.CallInvoker)
+  nameWithType: LiteClientBase.LiteClientBase(CallInvoker)
+- uid: Grpc.Core.LiteClientBase.#ctor*
+  name: LiteClientBase
+  href: api/Grpc.Core.LiteClientBase.html#Grpc_Core_LiteClientBase__ctor_
+  commentId: Overload:Grpc.Core.LiteClientBase.#ctor
+  isSpec: "True"
+  fullName: Grpc.Core.LiteClientBase.LiteClientBase
+  nameWithType: LiteClientBase.LiteClientBase
+- uid: Grpc.Core.LiteClientBase.CallInvoker
+  name: CallInvoker
+  href: api/Grpc.Core.LiteClientBase.html#Grpc_Core_LiteClientBase_CallInvoker
+  commentId: P:Grpc.Core.LiteClientBase.CallInvoker
+  fullName: Grpc.Core.LiteClientBase.CallInvoker
+  nameWithType: LiteClientBase.CallInvoker
+- uid: Grpc.Core.LiteClientBase.CallInvoker*
+  name: CallInvoker
+  href: api/Grpc.Core.LiteClientBase.html#Grpc_Core_LiteClientBase_CallInvoker_
+  commentId: Overload:Grpc.Core.LiteClientBase.CallInvoker
+  isSpec: "True"
+  fullName: Grpc.Core.LiteClientBase.CallInvoker
+  nameWithType: LiteClientBase.CallInvoker
 - uid: Grpc.Core.Logging
 - uid: Grpc.Core.Logging
   name: Grpc.Core.Logging
   name: Grpc.Core.Logging
   href: api/Grpc.Core.Logging.html
   href: api/Grpc.Core.Logging.html
@@ -4784,6 +5103,32 @@ references:
   isSpec: "True"
   isSpec: "True"
   fullName: Grpc.Core.ServerCallContext.StatusCore
   fullName: Grpc.Core.ServerCallContext.StatusCore
   nameWithType: ServerCallContext.StatusCore
   nameWithType: ServerCallContext.StatusCore
+- uid: Grpc.Core.ServerCallContext.UserState
+  name: UserState
+  href: api/Grpc.Core.ServerCallContext.html#Grpc_Core_ServerCallContext_UserState
+  commentId: P:Grpc.Core.ServerCallContext.UserState
+  fullName: Grpc.Core.ServerCallContext.UserState
+  nameWithType: ServerCallContext.UserState
+- uid: Grpc.Core.ServerCallContext.UserState*
+  name: UserState
+  href: api/Grpc.Core.ServerCallContext.html#Grpc_Core_ServerCallContext_UserState_
+  commentId: Overload:Grpc.Core.ServerCallContext.UserState
+  isSpec: "True"
+  fullName: Grpc.Core.ServerCallContext.UserState
+  nameWithType: ServerCallContext.UserState
+- uid: Grpc.Core.ServerCallContext.UserStateCore
+  name: UserStateCore
+  href: api/Grpc.Core.ServerCallContext.html#Grpc_Core_ServerCallContext_UserStateCore
+  commentId: P:Grpc.Core.ServerCallContext.UserStateCore
+  fullName: Grpc.Core.ServerCallContext.UserStateCore
+  nameWithType: ServerCallContext.UserStateCore
+- uid: Grpc.Core.ServerCallContext.UserStateCore*
+  name: UserStateCore
+  href: api/Grpc.Core.ServerCallContext.html#Grpc_Core_ServerCallContext_UserStateCore_
+  commentId: Overload:Grpc.Core.ServerCallContext.UserStateCore
+  isSpec: "True"
+  fullName: Grpc.Core.ServerCallContext.UserStateCore
+  nameWithType: ServerCallContext.UserStateCore
 - uid: Grpc.Core.ServerCallContext.WriteOptions
 - uid: Grpc.Core.ServerCallContext.WriteOptions
   name: WriteOptions
   name: WriteOptions
   href: api/Grpc.Core.ServerCallContext.html#Grpc_Core_ServerCallContext_WriteOptions
   href: api/Grpc.Core.ServerCallContext.html#Grpc_Core_ServerCallContext_WriteOptions
@@ -5144,6 +5489,12 @@ references:
   commentId: M:Grpc.Core.SslCredentials.#ctor(System.String,Grpc.Core.KeyCertificatePair)
   commentId: M:Grpc.Core.SslCredentials.#ctor(System.String,Grpc.Core.KeyCertificatePair)
   fullName: Grpc.Core.SslCredentials.SslCredentials(System.String, Grpc.Core.KeyCertificatePair)
   fullName: Grpc.Core.SslCredentials.SslCredentials(System.String, Grpc.Core.KeyCertificatePair)
   nameWithType: SslCredentials.SslCredentials(String, KeyCertificatePair)
   nameWithType: SslCredentials.SslCredentials(String, KeyCertificatePair)
+- uid: Grpc.Core.SslCredentials.#ctor(System.String,Grpc.Core.KeyCertificatePair,Grpc.Core.VerifyPeerCallback)
+  name: SslCredentials(String, KeyCertificatePair, VerifyPeerCallback)
+  href: api/Grpc.Core.SslCredentials.html#Grpc_Core_SslCredentials__ctor_System_String_Grpc_Core_KeyCertificatePair_Grpc_Core_VerifyPeerCallback_
+  commentId: M:Grpc.Core.SslCredentials.#ctor(System.String,Grpc.Core.KeyCertificatePair,Grpc.Core.VerifyPeerCallback)
+  fullName: Grpc.Core.SslCredentials.SslCredentials(System.String, Grpc.Core.KeyCertificatePair, Grpc.Core.VerifyPeerCallback)
+  nameWithType: SslCredentials.SslCredentials(String, KeyCertificatePair, VerifyPeerCallback)
 - uid: Grpc.Core.SslCredentials.#ctor*
 - uid: Grpc.Core.SslCredentials.#ctor*
   name: SslCredentials
   name: SslCredentials
   href: api/Grpc.Core.SslCredentials.html#Grpc_Core_SslCredentials__ctor_
   href: api/Grpc.Core.SslCredentials.html#Grpc_Core_SslCredentials__ctor_
@@ -5151,6 +5502,19 @@ references:
   isSpec: "True"
   isSpec: "True"
   fullName: Grpc.Core.SslCredentials.SslCredentials
   fullName: Grpc.Core.SslCredentials.SslCredentials
   nameWithType: SslCredentials.SslCredentials
   nameWithType: SslCredentials.SslCredentials
+- uid: Grpc.Core.SslCredentials.InternalPopulateConfiguration(Grpc.Core.ChannelCredentialsConfiguratorBase,System.Object)
+  name: InternalPopulateConfiguration(ChannelCredentialsConfiguratorBase, Object)
+  href: api/Grpc.Core.SslCredentials.html#Grpc_Core_SslCredentials_InternalPopulateConfiguration_Grpc_Core_ChannelCredentialsConfiguratorBase_System_Object_
+  commentId: M:Grpc.Core.SslCredentials.InternalPopulateConfiguration(Grpc.Core.ChannelCredentialsConfiguratorBase,System.Object)
+  fullName: Grpc.Core.SslCredentials.InternalPopulateConfiguration(Grpc.Core.ChannelCredentialsConfiguratorBase, System.Object)
+  nameWithType: SslCredentials.InternalPopulateConfiguration(ChannelCredentialsConfiguratorBase, Object)
+- uid: Grpc.Core.SslCredentials.InternalPopulateConfiguration*
+  name: InternalPopulateConfiguration
+  href: api/Grpc.Core.SslCredentials.html#Grpc_Core_SslCredentials_InternalPopulateConfiguration_
+  commentId: Overload:Grpc.Core.SslCredentials.InternalPopulateConfiguration
+  isSpec: "True"
+  fullName: Grpc.Core.SslCredentials.InternalPopulateConfiguration
+  nameWithType: SslCredentials.InternalPopulateConfiguration
 - uid: Grpc.Core.SslCredentials.KeyCertificatePair
 - uid: Grpc.Core.SslCredentials.KeyCertificatePair
   name: KeyCertificatePair
   name: KeyCertificatePair
   href: api/Grpc.Core.SslCredentials.html#Grpc_Core_SslCredentials_KeyCertificatePair
   href: api/Grpc.Core.SslCredentials.html#Grpc_Core_SslCredentials_KeyCertificatePair
@@ -5466,13 +5830,13 @@ references:
   isSpec: "True"
   isSpec: "True"
   fullName: Grpc.Core.Testing.TestCalls.AsyncClientStreamingCall
   fullName: Grpc.Core.Testing.TestCalls.AsyncClientStreamingCall
   nameWithType: TestCalls.AsyncClientStreamingCall
   nameWithType: TestCalls.AsyncClientStreamingCall
-- uid: Grpc.Core.Testing.TestCalls.AsyncClientStreamingCall``2(Grpc.Core.IClientStreamWriter{``0},System.Threading.Tasks.Task{``1},System.Threading.Tasks.Task{Metadata},System.Func{Status},System.Func{Metadata},System.Action)
+- uid: Grpc.Core.Testing.TestCalls.AsyncClientStreamingCall``2(IClientStreamWriter{``0},System.Threading.Tasks.Task{``1},System.Threading.Tasks.Task{Metadata},System.Func{Status},System.Func{Metadata},System.Action)
   name: AsyncClientStreamingCall<TRequest, TResponse>(IClientStreamWriter<TRequest>, Task<TResponse>, Task<Metadata>, Func<Status>, Func<Metadata>, Action)
   name: AsyncClientStreamingCall<TRequest, TResponse>(IClientStreamWriter<TRequest>, Task<TResponse>, Task<Metadata>, Func<Status>, Func<Metadata>, Action)
-  href: api/Grpc.Core.Testing.TestCalls.html#Grpc_Core_Testing_TestCalls_AsyncClientStreamingCall__2_Grpc_Core_IClientStreamWriter___0__System_Threading_Tasks_Task___1__System_Threading_Tasks_Task_Metadata__System_Func_Status__System_Func_Metadata__System_Action_
-  commentId: M:Grpc.Core.Testing.TestCalls.AsyncClientStreamingCall``2(Grpc.Core.IClientStreamWriter{``0},System.Threading.Tasks.Task{``1},System.Threading.Tasks.Task{Metadata},System.Func{Status},System.Func{Metadata},System.Action)
+  href: api/Grpc.Core.Testing.TestCalls.html#Grpc_Core_Testing_TestCalls_AsyncClientStreamingCall__2_IClientStreamWriter___0__System_Threading_Tasks_Task___1__System_Threading_Tasks_Task_Metadata__System_Func_Status__System_Func_Metadata__System_Action_
+  commentId: M:Grpc.Core.Testing.TestCalls.AsyncClientStreamingCall``2(IClientStreamWriter{``0},System.Threading.Tasks.Task{``1},System.Threading.Tasks.Task{Metadata},System.Func{Status},System.Func{Metadata},System.Action)
   name.vb: AsyncClientStreamingCall(Of TRequest, TResponse)(IClientStreamWriter(Of TRequest), Task(Of TResponse), Task(Of Metadata), Func(Of Status), Func(Of Metadata), Action)
   name.vb: AsyncClientStreamingCall(Of TRequest, TResponse)(IClientStreamWriter(Of TRequest), Task(Of TResponse), Task(Of Metadata), Func(Of Status), Func(Of Metadata), Action)
-  fullName: Grpc.Core.Testing.TestCalls.AsyncClientStreamingCall<TRequest, TResponse>(Grpc.Core.IClientStreamWriter<TRequest>, System.Threading.Tasks.Task<TResponse>, System.Threading.Tasks.Task<Metadata>, System.Func<Status>, System.Func<Metadata>, System.Action)
-  fullName.vb: Grpc.Core.Testing.TestCalls.AsyncClientStreamingCall(Of TRequest, TResponse)(Grpc.Core.IClientStreamWriter(Of TRequest), System.Threading.Tasks.Task(Of TResponse), System.Threading.Tasks.Task(Of Metadata), System.Func(Of Status), System.Func(Of Metadata), System.Action)
+  fullName: Grpc.Core.Testing.TestCalls.AsyncClientStreamingCall<TRequest, TResponse>(IClientStreamWriter<TRequest>, System.Threading.Tasks.Task<TResponse>, System.Threading.Tasks.Task<Metadata>, System.Func<Status>, System.Func<Metadata>, System.Action)
+  fullName.vb: Grpc.Core.Testing.TestCalls.AsyncClientStreamingCall(Of TRequest, TResponse)(IClientStreamWriter(Of TRequest), System.Threading.Tasks.Task(Of TResponse), System.Threading.Tasks.Task(Of Metadata), System.Func(Of Status), System.Func(Of Metadata), System.Action)
   nameWithType: TestCalls.AsyncClientStreamingCall<TRequest, TResponse>(IClientStreamWriter<TRequest>, Task<TResponse>, Task<Metadata>, Func<Status>, Func<Metadata>, Action)
   nameWithType: TestCalls.AsyncClientStreamingCall<TRequest, TResponse>(IClientStreamWriter<TRequest>, Task<TResponse>, Task<Metadata>, Func<Status>, Func<Metadata>, Action)
   nameWithType.vb: TestCalls.AsyncClientStreamingCall(Of TRequest, TResponse)(IClientStreamWriter(Of TRequest), Task(Of TResponse), Task(Of Metadata), Func(Of Status), Func(Of Metadata), Action)
   nameWithType.vb: TestCalls.AsyncClientStreamingCall(Of TRequest, TResponse)(IClientStreamWriter(Of TRequest), Task(Of TResponse), Task(Of Metadata), Func(Of Status), Func(Of Metadata), Action)
 - uid: Grpc.Core.Testing.TestCalls.AsyncDuplexStreamingCall*
 - uid: Grpc.Core.Testing.TestCalls.AsyncDuplexStreamingCall*
@@ -5482,13 +5846,13 @@ references:
   isSpec: "True"
   isSpec: "True"
   fullName: Grpc.Core.Testing.TestCalls.AsyncDuplexStreamingCall
   fullName: Grpc.Core.Testing.TestCalls.AsyncDuplexStreamingCall
   nameWithType: TestCalls.AsyncDuplexStreamingCall
   nameWithType: TestCalls.AsyncDuplexStreamingCall
-- uid: Grpc.Core.Testing.TestCalls.AsyncDuplexStreamingCall``2(Grpc.Core.IClientStreamWriter{``0},IAsyncStreamReader{``1},System.Threading.Tasks.Task{Metadata},System.Func{Status},System.Func{Metadata},System.Action)
+- uid: Grpc.Core.Testing.TestCalls.AsyncDuplexStreamingCall``2(IClientStreamWriter{``0},IAsyncStreamReader{``1},System.Threading.Tasks.Task{Metadata},System.Func{Status},System.Func{Metadata},System.Action)
   name: AsyncDuplexStreamingCall<TRequest, TResponse>(IClientStreamWriter<TRequest>, IAsyncStreamReader<TResponse>, Task<Metadata>, Func<Status>, Func<Metadata>, Action)
   name: AsyncDuplexStreamingCall<TRequest, TResponse>(IClientStreamWriter<TRequest>, IAsyncStreamReader<TResponse>, Task<Metadata>, Func<Status>, Func<Metadata>, Action)
-  href: api/Grpc.Core.Testing.TestCalls.html#Grpc_Core_Testing_TestCalls_AsyncDuplexStreamingCall__2_Grpc_Core_IClientStreamWriter___0__IAsyncStreamReader___1__System_Threading_Tasks_Task_Metadata__System_Func_Status__System_Func_Metadata__System_Action_
-  commentId: M:Grpc.Core.Testing.TestCalls.AsyncDuplexStreamingCall``2(Grpc.Core.IClientStreamWriter{``0},IAsyncStreamReader{``1},System.Threading.Tasks.Task{Metadata},System.Func{Status},System.Func{Metadata},System.Action)
+  href: api/Grpc.Core.Testing.TestCalls.html#Grpc_Core_Testing_TestCalls_AsyncDuplexStreamingCall__2_IClientStreamWriter___0__IAsyncStreamReader___1__System_Threading_Tasks_Task_Metadata__System_Func_Status__System_Func_Metadata__System_Action_
+  commentId: M:Grpc.Core.Testing.TestCalls.AsyncDuplexStreamingCall``2(IClientStreamWriter{``0},IAsyncStreamReader{``1},System.Threading.Tasks.Task{Metadata},System.Func{Status},System.Func{Metadata},System.Action)
   name.vb: AsyncDuplexStreamingCall(Of TRequest, TResponse)(IClientStreamWriter(Of TRequest), IAsyncStreamReader(Of TResponse), Task(Of Metadata), Func(Of Status), Func(Of Metadata), Action)
   name.vb: AsyncDuplexStreamingCall(Of TRequest, TResponse)(IClientStreamWriter(Of TRequest), IAsyncStreamReader(Of TResponse), Task(Of Metadata), Func(Of Status), Func(Of Metadata), Action)
-  fullName: Grpc.Core.Testing.TestCalls.AsyncDuplexStreamingCall<TRequest, TResponse>(Grpc.Core.IClientStreamWriter<TRequest>, IAsyncStreamReader<TResponse>, System.Threading.Tasks.Task<Metadata>, System.Func<Status>, System.Func<Metadata>, System.Action)
-  fullName.vb: Grpc.Core.Testing.TestCalls.AsyncDuplexStreamingCall(Of TRequest, TResponse)(Grpc.Core.IClientStreamWriter(Of TRequest), IAsyncStreamReader(Of TResponse), System.Threading.Tasks.Task(Of Metadata), System.Func(Of Status), System.Func(Of Metadata), System.Action)
+  fullName: Grpc.Core.Testing.TestCalls.AsyncDuplexStreamingCall<TRequest, TResponse>(IClientStreamWriter<TRequest>, IAsyncStreamReader<TResponse>, System.Threading.Tasks.Task<Metadata>, System.Func<Status>, System.Func<Metadata>, System.Action)
+  fullName.vb: Grpc.Core.Testing.TestCalls.AsyncDuplexStreamingCall(Of TRequest, TResponse)(IClientStreamWriter(Of TRequest), IAsyncStreamReader(Of TResponse), System.Threading.Tasks.Task(Of Metadata), System.Func(Of Status), System.Func(Of Metadata), System.Action)
   nameWithType: TestCalls.AsyncDuplexStreamingCall<TRequest, TResponse>(IClientStreamWriter<TRequest>, IAsyncStreamReader<TResponse>, Task<Metadata>, Func<Status>, Func<Metadata>, Action)
   nameWithType: TestCalls.AsyncDuplexStreamingCall<TRequest, TResponse>(IClientStreamWriter<TRequest>, IAsyncStreamReader<TResponse>, Task<Metadata>, Func<Status>, Func<Metadata>, Action)
   nameWithType.vb: TestCalls.AsyncDuplexStreamingCall(Of TRequest, TResponse)(IClientStreamWriter(Of TRequest), IAsyncStreamReader(Of TResponse), Task(Of Metadata), Func(Of Status), Func(Of Metadata), Action)
   nameWithType.vb: TestCalls.AsyncDuplexStreamingCall(Of TRequest, TResponse)(IClientStreamWriter(Of TRequest), IAsyncStreamReader(Of TResponse), Task(Of Metadata), Func(Of Status), Func(Of Metadata), Action)
 - uid: Grpc.Core.Testing.TestCalls.AsyncServerStreamingCall*
 - uid: Grpc.Core.Testing.TestCalls.AsyncServerStreamingCall*
@@ -5730,6 +6094,44 @@ references:
   isSpec: "True"
   isSpec: "True"
   fullName: Grpc.Core.Utils.TaskUtils.CompletedTask
   fullName: Grpc.Core.Utils.TaskUtils.CompletedTask
   nameWithType: TaskUtils.CompletedTask
   nameWithType: TaskUtils.CompletedTask
+- uid: Grpc.Core.VerifyPeerCallback
+  name: VerifyPeerCallback
+  href: api/Grpc.Core.VerifyPeerCallback.html
+  commentId: T:Grpc.Core.VerifyPeerCallback
+  fullName: Grpc.Core.VerifyPeerCallback
+  nameWithType: VerifyPeerCallback
+- uid: Grpc.Core.VerifyPeerContext
+  name: VerifyPeerContext
+  href: api/Grpc.Core.VerifyPeerContext.html
+  commentId: T:Grpc.Core.VerifyPeerContext
+  fullName: Grpc.Core.VerifyPeerContext
+  nameWithType: VerifyPeerContext
+- uid: Grpc.Core.VerifyPeerContext.PeerPem
+  name: PeerPem
+  href: api/Grpc.Core.VerifyPeerContext.html#Grpc_Core_VerifyPeerContext_PeerPem
+  commentId: P:Grpc.Core.VerifyPeerContext.PeerPem
+  fullName: Grpc.Core.VerifyPeerContext.PeerPem
+  nameWithType: VerifyPeerContext.PeerPem
+- uid: Grpc.Core.VerifyPeerContext.PeerPem*
+  name: PeerPem
+  href: api/Grpc.Core.VerifyPeerContext.html#Grpc_Core_VerifyPeerContext_PeerPem_
+  commentId: Overload:Grpc.Core.VerifyPeerContext.PeerPem
+  isSpec: "True"
+  fullName: Grpc.Core.VerifyPeerContext.PeerPem
+  nameWithType: VerifyPeerContext.PeerPem
+- uid: Grpc.Core.VerifyPeerContext.TargetName
+  name: TargetName
+  href: api/Grpc.Core.VerifyPeerContext.html#Grpc_Core_VerifyPeerContext_TargetName
+  commentId: P:Grpc.Core.VerifyPeerContext.TargetName
+  fullName: Grpc.Core.VerifyPeerContext.TargetName
+  nameWithType: VerifyPeerContext.TargetName
+- uid: Grpc.Core.VerifyPeerContext.TargetName*
+  name: TargetName
+  href: api/Grpc.Core.VerifyPeerContext.html#Grpc_Core_VerifyPeerContext_TargetName_
+  commentId: Overload:Grpc.Core.VerifyPeerContext.TargetName
+  isSpec: "True"
+  fullName: Grpc.Core.VerifyPeerContext.TargetName
+  nameWithType: VerifyPeerContext.TargetName
 - uid: Grpc.Core.VersionInfo
 - uid: Grpc.Core.VersionInfo
   name: VersionInfo
   name: VersionInfo
   href: api/Grpc.Core.VersionInfo.html
   href: api/Grpc.Core.VersionInfo.html
@@ -5907,12 +6309,12 @@ references:
   commentId: M:Grpc.Health.V1.Health.HealthClient.#ctor(Grpc.Core.CallInvoker)
   commentId: M:Grpc.Health.V1.Health.HealthClient.#ctor(Grpc.Core.CallInvoker)
   fullName: Grpc.Health.V1.Health.HealthClient.HealthClient(Grpc.Core.CallInvoker)
   fullName: Grpc.Health.V1.Health.HealthClient.HealthClient(Grpc.Core.CallInvoker)
   nameWithType: Health.HealthClient.HealthClient(CallInvoker)
   nameWithType: Health.HealthClient.HealthClient(CallInvoker)
-- uid: Grpc.Health.V1.Health.HealthClient.#ctor(Grpc.Core.Channel)
-  name: HealthClient(Channel)
-  href: api/Grpc.Health.V1.Health.HealthClient.html#Grpc_Health_V1_Health_HealthClient__ctor_Grpc_Core_Channel_
-  commentId: M:Grpc.Health.V1.Health.HealthClient.#ctor(Grpc.Core.Channel)
-  fullName: Grpc.Health.V1.Health.HealthClient.HealthClient(Grpc.Core.Channel)
-  nameWithType: Health.HealthClient.HealthClient(Channel)
+- uid: Grpc.Health.V1.Health.HealthClient.#ctor(Grpc.Core.ChannelBase)
+  name: HealthClient(ChannelBase)
+  href: api/Grpc.Health.V1.Health.HealthClient.html#Grpc_Health_V1_Health_HealthClient__ctor_Grpc_Core_ChannelBase_
+  commentId: M:Grpc.Health.V1.Health.HealthClient.#ctor(Grpc.Core.ChannelBase)
+  fullName: Grpc.Health.V1.Health.HealthClient.HealthClient(Grpc.Core.ChannelBase)
+  nameWithType: Health.HealthClient.HealthClient(ChannelBase)
 - uid: Grpc.Health.V1.Health.HealthClient.#ctor(Grpc.Core.ClientBase.ClientBaseConfiguration)
 - uid: Grpc.Health.V1.Health.HealthClient.#ctor(Grpc.Core.ClientBase.ClientBaseConfiguration)
   name: HealthClient(ClientBase.ClientBaseConfiguration)
   name: HealthClient(ClientBase.ClientBaseConfiguration)
   href: api/Grpc.Health.V1.Health.HealthClient.html#Grpc_Health_V1_Health_HealthClient__ctor_Grpc_Core_ClientBase_ClientBaseConfiguration_
   href: api/Grpc.Health.V1.Health.HealthClient.html#Grpc_Health_V1_Health_HealthClient__ctor_Grpc_Core_ClientBase_ClientBaseConfiguration_
@@ -6418,11 +6820,11 @@ references:
   commentId: T:Grpc.HealthCheck.HealthServiceImpl
   commentId: T:Grpc.HealthCheck.HealthServiceImpl
   fullName: Grpc.HealthCheck.HealthServiceImpl
   fullName: Grpc.HealthCheck.HealthServiceImpl
   nameWithType: HealthServiceImpl
   nameWithType: HealthServiceImpl
-- uid: Grpc.HealthCheck.HealthServiceImpl.Check(Grpc.Health.V1.HealthCheckRequest,ServerCallContext)
+- uid: Grpc.HealthCheck.HealthServiceImpl.Check(Grpc.Health.V1.HealthCheckRequest,Grpc.Core.ServerCallContext)
   name: Check(HealthCheckRequest, ServerCallContext)
   name: Check(HealthCheckRequest, ServerCallContext)
-  href: api/Grpc.HealthCheck.HealthServiceImpl.html#Grpc_HealthCheck_HealthServiceImpl_Check_Grpc_Health_V1_HealthCheckRequest_ServerCallContext_
-  commentId: M:Grpc.HealthCheck.HealthServiceImpl.Check(Grpc.Health.V1.HealthCheckRequest,ServerCallContext)
-  fullName: Grpc.HealthCheck.HealthServiceImpl.Check(Grpc.Health.V1.HealthCheckRequest, ServerCallContext)
+  href: api/Grpc.HealthCheck.HealthServiceImpl.html#Grpc_HealthCheck_HealthServiceImpl_Check_Grpc_Health_V1_HealthCheckRequest_Grpc_Core_ServerCallContext_
+  commentId: M:Grpc.HealthCheck.HealthServiceImpl.Check(Grpc.Health.V1.HealthCheckRequest,Grpc.Core.ServerCallContext)
+  fullName: Grpc.HealthCheck.HealthServiceImpl.Check(Grpc.Health.V1.HealthCheckRequest, Grpc.Core.ServerCallContext)
   nameWithType: HealthServiceImpl.Check(HealthCheckRequest, ServerCallContext)
   nameWithType: HealthServiceImpl.Check(HealthCheckRequest, ServerCallContext)
 - uid: Grpc.HealthCheck.HealthServiceImpl.Check*
 - uid: Grpc.HealthCheck.HealthServiceImpl.Check*
   name: Check
   name: Check

Some files were not shown because too many files changed in this diff