Преглед изворни кода

update C# generated docs to v1.18.0

Jan Tattermusch пре 6 година
родитељ
комит
bb9d1fe14a

+ 47 - 0
csharp/api/Grpc.Core.Channel.html

@@ -462,6 +462,53 @@ all the calls on this channel have finished (successfully or with an error)
 before shutting down the channel to ensure channel shutdown won't impact
 before shutting down the channel to ensure channel shutdown won't impact
 the outcome of those remote calls.</p>
 the outcome of those remote calls.</p>
 </div>
 </div>
+  <a id="Grpc_Core_Channel_TryWaitForStateChangedAsync_" data-uid="Grpc.Core.Channel.TryWaitForStateChangedAsync*"></a>
+  <h4 id="Grpc_Core_Channel_TryWaitForStateChangedAsync_Grpc_Core_ChannelState_System_Nullable_System_DateTime__" data-uid="Grpc.Core.Channel.TryWaitForStateChangedAsync(Grpc.Core.ChannelState,System.Nullable{System.DateTime})">TryWaitForStateChangedAsync(ChannelState, Nullable&lt;DateTime&gt;)</h4>
+  <div class="markdown level1 summary"><p>Returned tasks completes once channel state has become different from
+given lastObservedState (<code>true</code> is returned) or if the wait has timed out (<code>false</code> is returned).</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public Task&lt;bool&gt; TryWaitForStateChangedAsync(ChannelState lastObservedState, DateTime? deadline = default(DateTime? ))</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.ChannelState.html">ChannelState</a></td>
+        <td><span class="parametername">lastObservedState</span></td>
+        <td></td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Nullable</span>&lt;<span class="xref">System.DateTime</span>&gt;</td>
+        <td><span class="parametername">deadline</span></td>
+        <td></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></td>
+      </tr>
+    </tbody>
+  </table>
   <a id="Grpc_Core_Channel_WaitForStateChangedAsync_" data-uid="Grpc.Core.Channel.WaitForStateChangedAsync*"></a>
   <a id="Grpc_Core_Channel_WaitForStateChangedAsync_" data-uid="Grpc.Core.Channel.WaitForStateChangedAsync*"></a>
   <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 

+ 218 - 8
csharp/api/Grpc.Core.ChannelOption.html

@@ -84,7 +84,9 @@
   <h1 id="Grpc_Core_ChannelOption" data-uid="Grpc.Core.ChannelOption" class="text-break">Class ChannelOption
   <h1 id="Grpc_Core_ChannelOption" data-uid="Grpc.Core.ChannelOption" class="text-break">Class ChannelOption
   </h1>
   </h1>
   <div class="markdown level0 summary"><p>Channel option specified when creating a channel.
   <div class="markdown level0 summary"><p>Channel option specified when creating a channel.
-Corresponds to grpc_channel_args from grpc/grpc.h.</p>
+Corresponds to grpc_channel_args from grpc/grpc.h.
+Commonly used channel option names are defined in <code>ChannelOptions</code>,
+but any of the GRPC_ARG_* channel options names defined in grpc_types.h can be used.</p>
 </div>
 </div>
   <div class="markdown level0 conceptual"></div>
   <div class="markdown level0 conceptual"></div>
   <div class="inheritance">
   <div class="inheritance">
@@ -92,17 +94,15 @@ Corresponds to grpc_channel_args from grpc/grpc.h.</p>
     <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">ChannelOption</span></div>
     <div class="level1"><span class="xref">ChannelOption</span></div>
   </div>
   </div>
+  <div classs="implements">
+    <h5>Implements</h5>
+    <div><span class="xref">System.IEquatable</span>&lt;<a class="xref" href="Grpc.Core.ChannelOption.html">ChannelOption</a>&gt;</div>
+  </div>
   <div class="inheritedMembers">
   <div class="inheritedMembers">
     <h5>Inherited Members</h5>
     <h5>Inherited Members</h5>
-    <div>
-      <span class="xref">System.Object.Equals(System.Object)</span>
-    </div>
     <div>
     <div>
       <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
       <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
     </div>
     </div>
-    <div>
-      <span class="xref">System.Object.GetHashCode()</span>
-    </div>
     <div>
     <div>
       <span class="xref">System.Object.GetType()</span>
       <span class="xref">System.Object.GetType()</span>
     </div>
     </div>
@@ -120,7 +120,7 @@ Corresponds to grpc_channel_args from grpc/grpc.h.</p>
   <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
   <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
   <h5 id="Grpc_Core_ChannelOption_syntax">Syntax</h5>
   <h5 id="Grpc_Core_ChannelOption_syntax">Syntax</h5>
   <div class="codewrapper">
   <div class="codewrapper">
-    <pre><code class="lang-csharp hljs">public sealed class ChannelOption</code></pre>
+    <pre><code class="lang-csharp hljs">public sealed class ChannelOption : IEquatable&lt;ChannelOption&gt;</code></pre>
   </div>
   </div>
   <h3 id="constructors">Constructors
   <h3 id="constructors">Constructors
   </h3>
   </h3>
@@ -288,6 +288,216 @@ Corresponds to grpc_channel_args from grpc/grpc.h.</p>
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>
+  <h3 id="methods">Methods
+  </h3>
+  <a id="Grpc_Core_ChannelOption_Equals_" data-uid="Grpc.Core.ChannelOption.Equals*"></a>
+  <h4 id="Grpc_Core_ChannelOption_Equals_Grpc_Core_ChannelOption_" data-uid="Grpc.Core.ChannelOption.Equals(Grpc.Core.ChannelOption)">Equals(ChannelOption)</h4>
+  <div class="markdown level1 summary"><p>Determines whether the specified object is equal to the current object.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public bool Equals(ChannelOption other)</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.ChannelOption.html">ChannelOption</a></td>
+        <td><span class="parametername">other</span></td>
+        <td></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></td>
+      </tr>
+    </tbody>
+  </table>
+  <a id="Grpc_Core_ChannelOption_Equals_" data-uid="Grpc.Core.ChannelOption.Equals*"></a>
+  <h4 id="Grpc_Core_ChannelOption_Equals_System_Object_" data-uid="Grpc.Core.ChannelOption.Equals(System.Object)">Equals(Object)</h4>
+  <div class="markdown level1 summary"><p>Determines whether the specified object is equal to the current object.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public override bool Equals(object obj)</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">obj</span></td>
+        <td></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></td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="overrides">Overrides</h5>
+  <div><span class="xref">System.Object.Equals(System.Object)</span></div>
+  <a id="Grpc_Core_ChannelOption_GetHashCode_" data-uid="Grpc.Core.ChannelOption.GetHashCode*"></a>
+  <h4 id="Grpc_Core_ChannelOption_GetHashCode" data-uid="Grpc.Core.ChannelOption.GetHashCode">GetHashCode()</h4>
+  <div class="markdown level1 summary"><p>A hash code for the current object.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public override int GetHashCode()</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.Int32</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="overrides">Overrides</h5>
+  <div><span class="xref">System.Object.GetHashCode()</span></div>
+  <h3 id="operators">Operators
+  </h3>
+  <a id="Grpc_Core_ChannelOption_op_Equality_" data-uid="Grpc.Core.ChannelOption.op_Equality*"></a>
+  <h4 id="Grpc_Core_ChannelOption_op_Equality_Grpc_Core_ChannelOption_Grpc_Core_ChannelOption_" data-uid="Grpc.Core.ChannelOption.op_Equality(Grpc.Core.ChannelOption,Grpc.Core.ChannelOption)">Equality(ChannelOption, ChannelOption)</h4>
+  <div class="markdown level1 summary"><p>Equality operator.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public static bool operator ==(ChannelOption option1, ChannelOption option2)</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.ChannelOption.html">ChannelOption</a></td>
+        <td><span class="parametername">option1</span></td>
+        <td></td>
+      </tr>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.ChannelOption.html">ChannelOption</a></td>
+        <td><span class="parametername">option2</span></td>
+        <td></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></td>
+      </tr>
+    </tbody>
+  </table>
+  <a id="Grpc_Core_ChannelOption_op_Inequality_" data-uid="Grpc.Core.ChannelOption.op_Inequality*"></a>
+  <h4 id="Grpc_Core_ChannelOption_op_Inequality_Grpc_Core_ChannelOption_Grpc_Core_ChannelOption_" data-uid="Grpc.Core.ChannelOption.op_Inequality(Grpc.Core.ChannelOption,Grpc.Core.ChannelOption)">Inequality(ChannelOption, ChannelOption)</h4>
+  <div class="markdown level1 summary"><p>Inequality operator.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public static bool operator !=(ChannelOption option1, ChannelOption option2)</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.ChannelOption.html">ChannelOption</a></td>
+        <td><span class="parametername">option1</span></td>
+        <td></td>
+      </tr>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.ChannelOption.html">ChannelOption</a></td>
+        <td><span class="parametername">option2</span></td>
+        <td></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></td>
+      </tr>
+    </tbody>
+  </table>
+  <h3 id="implements">Implements</h3>
+  <div>
+      <span class="xref">System.IEquatable&lt;T&gt;</span>
+  </div>
 </article>
 </article>
           </div>
           </div>
           
           

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

@@ -83,7 +83,8 @@
   
   
   <h1 id="Grpc_Core_ChannelOptions" data-uid="Grpc.Core.ChannelOptions" class="text-break">Class ChannelOptions
   <h1 id="Grpc_Core_ChannelOptions" data-uid="Grpc.Core.ChannelOptions" class="text-break">Class ChannelOptions
   </h1>
   </h1>
-  <div class="markdown level0 summary"><p>Defines names of supported channel options.</p>
+  <div class="markdown level0 summary"><p>Defines names of most commonly used channel options.
+Other supported options names can be found in grpc_types.h (GRPC_ARG_* definitions)</p>
 </div>
 </div>
   <div class="markdown level0 conceptual"></div>
   <div class="markdown level0 conceptual"></div>
   <div class="inheritance">
   <div class="inheritance">

+ 217 - 0
csharp/api/Grpc.Core.DeserializationContext.html

@@ -0,0 +1,217 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Class DeserializationContext
+   | gRPC C# </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Class DeserializationContext
+   | 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.DeserializationContext">
+  
+  
+  <h1 id="Grpc_Core_DeserializationContext" data-uid="Grpc.Core.DeserializationContext" class="text-break">Class DeserializationContext
+  </h1>
+  <div class="markdown level0 summary"><p>Provides access to the payload being deserialized when deserializing messages.</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">DeserializationContext</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.dll</h6>
+  <h5 id="Grpc_Core_DeserializationContext_syntax">Syntax</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public abstract class DeserializationContext</code></pre>
+  </div>
+  <h3 id="properties">Properties
+  </h3>
+  <a id="Grpc_Core_DeserializationContext_PayloadLength_" data-uid="Grpc.Core.DeserializationContext.PayloadLength*"></a>
+  <h4 id="Grpc_Core_DeserializationContext_PayloadLength" data-uid="Grpc.Core.DeserializationContext.PayloadLength">PayloadLength</h4>
+  <div class="markdown level1 summary"><p>Get the total length of the payload in bytes.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public abstract int PayloadLength { 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.Int32</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h3 id="methods">Methods
+  </h3>
+  <a id="Grpc_Core_DeserializationContext_PayloadAsNewBuffer_" data-uid="Grpc.Core.DeserializationContext.PayloadAsNewBuffer*"></a>
+  <h4 id="Grpc_Core_DeserializationContext_PayloadAsNewBuffer" data-uid="Grpc.Core.DeserializationContext.PayloadAsNewBuffer">PayloadAsNewBuffer()</h4>
+  <div class="markdown level1 summary"><p>Gets the entire payload as a newly allocated byte array.
+Once the byte array is returned, the byte array becomes owned by the caller and won&apos;t be ever accessed or reused by gRPC again.
+NOTE: Obtaining the buffer as a newly allocated byte array is the simplest way of accessing the payload,
+but it can have important consequences in high-performance scenarios.
+In particular, using this method usually requires copying of the entire buffer one extra time.
+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,
+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
+(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 byte[] PayloadAsNewBuffer()</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.Byte</span>[]</td>
+        <td><p>byte array containing the entire payload.</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>

+ 87 - 1
csharp/api/Grpc.Core.Marshaller-1.html

@@ -139,8 +139,44 @@
   <h3 id="constructors">Constructors
   <h3 id="constructors">Constructors
   </h3>
   </h3>
   <a id="Grpc_Core_Marshaller_1__ctor_" data-uid="Grpc.Core.Marshaller`1.#ctor*"></a>
   <a id="Grpc_Core_Marshaller_1__ctor_" data-uid="Grpc.Core.Marshaller`1.#ctor*"></a>
+  <h4 id="Grpc_Core_Marshaller_1__ctor_System_Action__0_Grpc_Core_SerializationContext__System_Func_Grpc_Core_DeserializationContext__0__" data-uid="Grpc.Core.Marshaller`1.#ctor(System.Action{`0,Grpc.Core.SerializationContext},System.Func{Grpc.Core.DeserializationContext,`0})">Marshaller(Action&lt;T, SerializationContext&gt;, Func&lt;DeserializationContext, T&gt;)</h4>
+  <div class="markdown level1 summary"><p>Initializes a new marshaller from serialize/deserialize fuctions that can access serialization and deserialization
+context. Compared to the simple serializer/deserializer functions, using the contextual version provides more
+flexibility and can lead to increased efficiency (and better performance).
+Note: This constructor is part of an experimental API that can change or be removed without any prior notice.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public Marshaller(Action&lt;T, SerializationContext&gt; serializer, Func&lt;DeserializationContext, T&gt; deserializer)</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.Action</span>&lt;T, <a class="xref" href="Grpc.Core.SerializationContext.html">SerializationContext</a>&gt;</td>
+        <td><span class="parametername">serializer</span></td>
+        <td><p>Function that will be used to serialize messages.</p>
+</td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Func</span>&lt;<a class="xref" href="Grpc.Core.DeserializationContext.html">DeserializationContext</a>, T&gt;</td>
+        <td><span class="parametername">deserializer</span></td>
+        <td><p>Function that will be used to deserialize messages.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <a id="Grpc_Core_Marshaller_1__ctor_" data-uid="Grpc.Core.Marshaller`1.#ctor*"></a>
   <h4 id="Grpc_Core_Marshaller_1__ctor_System_Func__0_System_Byte____System_Func_System_Byte____0__" data-uid="Grpc.Core.Marshaller`1.#ctor(System.Func{`0,System.Byte[]},System.Func{System.Byte[],`0})">Marshaller(Func&lt;T, Byte[]&gt;, Func&lt;Byte[], T&gt;)</h4>
   <h4 id="Grpc_Core_Marshaller_1__ctor_System_Func__0_System_Byte____System_Func_System_Byte____0__" data-uid="Grpc.Core.Marshaller`1.#ctor(System.Func{`0,System.Byte[]},System.Func{System.Byte[],`0})">Marshaller(Func&lt;T, Byte[]&gt;, Func&lt;Byte[], T&gt;)</h4>
-  <div class="markdown level1 summary"><p>Initializes a new marshaller.</p>
+  <div class="markdown level1 summary"><p>Initializes a new marshaller from simple serialize/deserialize functions.</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>
@@ -173,6 +209,56 @@
   </table>
   </table>
   <h3 id="properties">Properties
   <h3 id="properties">Properties
   </h3>
   </h3>
+  <a id="Grpc_Core_Marshaller_1_ContextualDeserializer_" data-uid="Grpc.Core.Marshaller`1.ContextualDeserializer*"></a>
+  <h4 id="Grpc_Core_Marshaller_1_ContextualDeserializer" data-uid="Grpc.Core.Marshaller`1.ContextualDeserializer">ContextualDeserializer</h4>
+  <div class="markdown level1 summary"><p>Gets the serializer function.
+Note: experimental API that can change or be removed without any prior notice.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public Func&lt;DeserializationContext, T&gt; ContextualDeserializer { 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.Func</span>&lt;<a class="xref" href="Grpc.Core.DeserializationContext.html">DeserializationContext</a>, T&gt;</td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <a id="Grpc_Core_Marshaller_1_ContextualSerializer_" data-uid="Grpc.Core.Marshaller`1.ContextualSerializer*"></a>
+  <h4 id="Grpc_Core_Marshaller_1_ContextualSerializer" data-uid="Grpc.Core.Marshaller`1.ContextualSerializer">ContextualSerializer</h4>
+  <div class="markdown level1 summary"><p>Gets the serializer function.
+Note: experimental API that can change or be removed without any prior notice.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public Action&lt;T, SerializationContext&gt; ContextualSerializer { 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.Action</span>&lt;T, <a class="xref" href="Grpc.Core.SerializationContext.html">SerializationContext</a>&gt;</td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
   <a id="Grpc_Core_Marshaller_1_Deserializer_" data-uid="Grpc.Core.Marshaller`1.Deserializer*"></a>
   <a id="Grpc_Core_Marshaller_1_Deserializer_" data-uid="Grpc.Core.Marshaller`1.Deserializer*"></a>
   <h4 id="Grpc_Core_Marshaller_1_Deserializer" data-uid="Grpc.Core.Marshaller`1.Deserializer">Deserializer</h4>
   <h4 id="Grpc_Core_Marshaller_1_Deserializer" data-uid="Grpc.Core.Marshaller`1.Deserializer">Deserializer</h4>
   <div class="markdown level1 summary"><p>Gets the deserializer function.</p>
   <div class="markdown level1 summary"><p>Gets the deserializer function.</p>

+ 62 - 0
csharp/api/Grpc.Core.Marshallers.html

@@ -150,6 +150,68 @@
   <h3 id="methods">Methods
   <h3 id="methods">Methods
   </h3>
   </h3>
   <a id="Grpc_Core_Marshallers_Create_" data-uid="Grpc.Core.Marshallers.Create*"></a>
   <a id="Grpc_Core_Marshallers_Create_" data-uid="Grpc.Core.Marshallers.Create*"></a>
+  <h4 id="Grpc_Core_Marshallers_Create__1_System_Action___0_Grpc_Core_SerializationContext__System_Func_Grpc_Core_DeserializationContext___0__" data-uid="Grpc.Core.Marshallers.Create``1(System.Action{``0,Grpc.Core.SerializationContext},System.Func{Grpc.Core.DeserializationContext,``0})">Create&lt;T&gt;(Action&lt;T, SerializationContext&gt;, Func&lt;DeserializationContext, T&gt;)</h4>
+  <div class="markdown level1 summary"><p>Creates a marshaller from specified contextual serializer and deserializer.
+Note: This method is part of an experimental API that can change or be removed without any prior notice.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public static Marshaller&lt;T&gt; Create&lt;T&gt;(Action&lt;T, SerializationContext&gt; serializer, Func&lt;DeserializationContext, T&gt; deserializer)</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.Action</span>&lt;T, <a class="xref" href="Grpc.Core.SerializationContext.html">SerializationContext</a>&gt;</td>
+        <td><span class="parametername">serializer</span></td>
+        <td></td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Func</span>&lt;<a class="xref" href="Grpc.Core.DeserializationContext.html">DeserializationContext</a>, T&gt;</td>
+        <td><span class="parametername">deserializer</span></td>
+        <td></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><a class="xref" href="Grpc.Core.Marshaller-1.html">Marshaller</a>&lt;T&gt;</td>
+        <td></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></td>
+      </tr>
+    </tbody>
+  </table>
+  <a id="Grpc_Core_Marshallers_Create_" data-uid="Grpc.Core.Marshallers.Create*"></a>
   <h4 id="Grpc_Core_Marshallers_Create__1_System_Func___0_System_Byte____System_Func_System_Byte_____0__" data-uid="Grpc.Core.Marshallers.Create``1(System.Func{``0,System.Byte[]},System.Func{System.Byte[],``0})">Create&lt;T&gt;(Func&lt;T, Byte[]&gt;, Func&lt;Byte[], T&gt;)</h4>
   <h4 id="Grpc_Core_Marshallers_Create__1_System_Func___0_System_Byte____System_Func_System_Byte_____0__" data-uid="Grpc.Core.Marshallers.Create``1(System.Func{``0,System.Byte[]},System.Func{System.Byte[],``0})">Create&lt;T&gt;(Func&lt;T, Byte[]&gt;, Func&lt;Byte[], T&gt;)</h4>
   <div class="markdown level1 summary"><p>Creates a marshaller from specified serializer and deserializer.</p>
   <div class="markdown level1 summary"><p>Creates a marshaller from specified serializer and deserializer.</p>
 </div>
 </div>

+ 3 - 3
csharp/api/Grpc.Core.Metadata.Entry.html

@@ -142,7 +142,7 @@
       <tr>
       <tr>
         <td><span class="xref">System.String</span></td>
         <td><span class="xref">System.String</span></td>
         <td><span class="parametername">key</span></td>
         <td><span class="parametername">key</span></td>
-        <td><p>Metadata key, needs to have suffix indicating a binary valued metadata entry.</p>
+        <td><p>Metadata key. Gets converted to lowercase. Needs to have suffix indicating a binary valued metadata entry. Can only contain lowercase alphanumeric characters, underscores, hyphens and dots.</p>
 </td>
 </td>
       </tr>
       </tr>
       <tr>
       <tr>
@@ -155,7 +155,7 @@
   </table>
   </table>
   <a id="Grpc_Core_Metadata_Entry__ctor_" data-uid="Grpc.Core.Metadata.Entry.#ctor*"></a>
   <a id="Grpc_Core_Metadata_Entry__ctor_" data-uid="Grpc.Core.Metadata.Entry.#ctor*"></a>
   <h4 id="Grpc_Core_Metadata_Entry__ctor_System_String_System_String_" data-uid="Grpc.Core.Metadata.Entry.#ctor(System.String,System.String)">Entry(String, String)</h4>
   <h4 id="Grpc_Core_Metadata_Entry__ctor_System_String_System_String_" data-uid="Grpc.Core.Metadata.Entry.#ctor(System.String,System.String)">Entry(String, String)</h4>
-  <div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="Grpc.Core.Metadata.Entry.html">Metadata.Entry</a> struct holding an ASCII value.</p>
+  <div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="Grpc.Core.Metadata.Entry.html">Metadata.Entry</a> struct with an ASCII value.</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>
@@ -175,7 +175,7 @@
       <tr>
       <tr>
         <td><span class="xref">System.String</span></td>
         <td><span class="xref">System.String</span></td>
         <td><span class="parametername">key</span></td>
         <td><span class="parametername">key</span></td>
-        <td><p>Metadata key, must not use suffix indicating a binary valued metadata entry.</p>
+        <td><p>Metadata key. Gets converted to lowercase. Must not use suffix indicating a binary valued metadata entry. Can only contain lowercase alphanumeric characters, underscores, hyphens and dots.</p>
 </td>
 </td>
       </tr>
       </tr>
       <tr>
       <tr>

+ 2 - 2
csharp/api/Grpc.Core.Metadata.html

@@ -310,7 +310,7 @@ gRPC supports these types of metadata:
   </table>
   </table>
   <a id="Grpc_Core_Metadata_Add_" data-uid="Grpc.Core.Metadata.Add*"></a>
   <a id="Grpc_Core_Metadata_Add_" data-uid="Grpc.Core.Metadata.Add*"></a>
   <h4 id="Grpc_Core_Metadata_Add_System_String_System_Byte___" data-uid="Grpc.Core.Metadata.Add(System.String,System.Byte[])">Add(String, Byte[])</h4>
   <h4 id="Grpc_Core_Metadata_Add_System_String_System_Byte___" data-uid="Grpc.Core.Metadata.Add(System.String,System.Byte[])">Add(String, Byte[])</h4>
-  <div class="markdown level1 summary"><span class="xref">IList`1</span>
+  <div class="markdown level1 summary"><p>Adds a new binary-valued metadata entry. See <code>Metadata.Entry</code> constructor for params.</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>
@@ -341,7 +341,7 @@ gRPC supports these types of metadata:
   </table>
   </table>
   <a id="Grpc_Core_Metadata_Add_" data-uid="Grpc.Core.Metadata.Add*"></a>
   <a id="Grpc_Core_Metadata_Add_" data-uid="Grpc.Core.Metadata.Add*"></a>
   <h4 id="Grpc_Core_Metadata_Add_System_String_System_String_" data-uid="Grpc.Core.Metadata.Add(System.String,System.String)">Add(String, String)</h4>
   <h4 id="Grpc_Core_Metadata_Add_System_String_System_String_" data-uid="Grpc.Core.Metadata.Add(System.String,System.String)">Add(String, String)</h4>
-  <div class="markdown level1 summary"><span class="xref">IList`1</span>
+  <div class="markdown level1 summary"><p>Adds a new ASCII-valued metadata entry. See <code>Metadata.Entry</code> constructor for params.</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>

+ 39 - 0
csharp/api/Grpc.Core.RpcException.html

@@ -218,6 +218,45 @@
         <td><a class="xref" href="Grpc.Core.Metadata.html">Metadata</a></td>
         <td><a class="xref" href="Grpc.Core.Metadata.html">Metadata</a></td>
         <td><span class="parametername">trailers</span></td>
         <td><span class="parametername">trailers</span></td>
         <td><p>Response trailing metadata.</p>
         <td><p>Response trailing metadata.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <a id="Grpc_Core_RpcException__ctor_" data-uid="Grpc.Core.RpcException.#ctor*"></a>
+  <h4 id="Grpc_Core_RpcException__ctor_Grpc_Core_Status_Grpc_Core_Metadata_System_String_" data-uid="Grpc.Core.RpcException.#ctor(Grpc.Core.Status,Grpc.Core.Metadata,System.String)">RpcException(Status, Metadata, String)</h4>
+  <div class="markdown level1 summary"><p>Creates a new <code>RpcException</code> associated with given status, message and trailing response metadata.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public RpcException(Status status, Metadata trailers, string message)</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.Status.html">Status</a></td>
+        <td><span class="parametername">status</span></td>
+        <td><p>Resulting status of a call.</p>
+</td>
+      </tr>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.Metadata.html">Metadata</a></td>
+        <td><span class="parametername">trailers</span></td>
+        <td><p>Response trailing metadata.</p>
+</td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.String</span></td>
+        <td><span class="parametername">message</span></td>
+        <td><p>The exception message.</p>
 </td>
 </td>
       </tr>
       </tr>
     </tbody>
     </tbody>

+ 186 - 0
csharp/api/Grpc.Core.SerializationContext.html

@@ -0,0 +1,186 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Class SerializationContext
+   | gRPC C# </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Class SerializationContext
+   | 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.SerializationContext">
+  
+  
+  <h1 id="Grpc_Core_SerializationContext" data-uid="Grpc.Core.SerializationContext" class="text-break">Class SerializationContext
+  </h1>
+  <div class="markdown level0 summary"><p>Provides storage for payload when serializing a message.</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">SerializationContext</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.dll</h6>
+  <h5 id="Grpc_Core_SerializationContext_syntax">Syntax</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public abstract class SerializationContext</code></pre>
+  </div>
+  <h3 id="methods">Methods
+  </h3>
+  <a id="Grpc_Core_SerializationContext_Complete_" data-uid="Grpc.Core.SerializationContext.Complete*"></a>
+  <h4 id="Grpc_Core_SerializationContext_Complete_System_Byte___" data-uid="Grpc.Core.SerializationContext.Complete(System.Byte[])">Complete(Byte[])</h4>
+  <div class="markdown level1 summary"><p>Use the byte array as serialized form of current message and mark serialization process as complete.
+Complete() can only be called once. By calling this method the caller gives up the ownership of the
+payload which must not be accessed afterwards.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public virtual void Complete(byte[] payload)</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.Byte</span>[]</td>
+        <td><span class="parametername">payload</span></td>
+        <td><p>the serialized form of current message</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>

+ 4 - 4
csharp/api/Grpc.Core.ServerServiceDefinition.Builder.html

@@ -136,7 +136,7 @@
   </h3>
   </h3>
   <a id="Grpc_Core_ServerServiceDefinition_Builder_AddMethod_" data-uid="Grpc.Core.ServerServiceDefinition.Builder.AddMethod*"></a>
   <a id="Grpc_Core_ServerServiceDefinition_Builder_AddMethod_" data-uid="Grpc.Core.ServerServiceDefinition.Builder.AddMethod*"></a>
   <h4 id="Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_Grpc_Core_Method___0___1__Grpc_Core_ClientStreamingServerMethod___0___1__" data-uid="Grpc.Core.ServerServiceDefinition.Builder.AddMethod``2(Grpc.Core.Method{``0,``1},Grpc.Core.ClientStreamingServerMethod{``0,``1})">AddMethod&lt;TRequest, TResponse&gt;(Method&lt;TRequest, TResponse&gt;, ClientStreamingServerMethod&lt;TRequest, TResponse&gt;)</h4>
   <h4 id="Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_Grpc_Core_Method___0___1__Grpc_Core_ClientStreamingServerMethod___0___1__" data-uid="Grpc.Core.ServerServiceDefinition.Builder.AddMethod``2(Grpc.Core.Method{``0,``1},Grpc.Core.ClientStreamingServerMethod{``0,``1})">AddMethod&lt;TRequest, TResponse&gt;(Method&lt;TRequest, TResponse&gt;, ClientStreamingServerMethod&lt;TRequest, TResponse&gt;)</h4>
-  <div class="markdown level1 summary"><p>Adds a definitions for a client streaming method.</p>
+  <div class="markdown level1 summary"><p>Adds a definition for a client streaming method.</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>
@@ -207,7 +207,7 @@
   </table>
   </table>
   <a id="Grpc_Core_ServerServiceDefinition_Builder_AddMethod_" data-uid="Grpc.Core.ServerServiceDefinition.Builder.AddMethod*"></a>
   <a id="Grpc_Core_ServerServiceDefinition_Builder_AddMethod_" data-uid="Grpc.Core.ServerServiceDefinition.Builder.AddMethod*"></a>
   <h4 id="Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_Grpc_Core_Method___0___1__Grpc_Core_DuplexStreamingServerMethod___0___1__" data-uid="Grpc.Core.ServerServiceDefinition.Builder.AddMethod``2(Grpc.Core.Method{``0,``1},Grpc.Core.DuplexStreamingServerMethod{``0,``1})">AddMethod&lt;TRequest, TResponse&gt;(Method&lt;TRequest, TResponse&gt;, DuplexStreamingServerMethod&lt;TRequest, TResponse&gt;)</h4>
   <h4 id="Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_Grpc_Core_Method___0___1__Grpc_Core_DuplexStreamingServerMethod___0___1__" data-uid="Grpc.Core.ServerServiceDefinition.Builder.AddMethod``2(Grpc.Core.Method{``0,``1},Grpc.Core.DuplexStreamingServerMethod{``0,``1})">AddMethod&lt;TRequest, TResponse&gt;(Method&lt;TRequest, TResponse&gt;, DuplexStreamingServerMethod&lt;TRequest, TResponse&gt;)</h4>
-  <div class="markdown level1 summary"><p>Adds a definitions for a bidirectional streaming method.</p>
+  <div class="markdown level1 summary"><p>Adds a definition for a bidirectional streaming method.</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>
@@ -278,7 +278,7 @@
   </table>
   </table>
   <a id="Grpc_Core_ServerServiceDefinition_Builder_AddMethod_" data-uid="Grpc.Core.ServerServiceDefinition.Builder.AddMethod*"></a>
   <a id="Grpc_Core_ServerServiceDefinition_Builder_AddMethod_" data-uid="Grpc.Core.ServerServiceDefinition.Builder.AddMethod*"></a>
   <h4 id="Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_Grpc_Core_Method___0___1__Grpc_Core_ServerStreamingServerMethod___0___1__" data-uid="Grpc.Core.ServerServiceDefinition.Builder.AddMethod``2(Grpc.Core.Method{``0,``1},Grpc.Core.ServerStreamingServerMethod{``0,``1})">AddMethod&lt;TRequest, TResponse&gt;(Method&lt;TRequest, TResponse&gt;, ServerStreamingServerMethod&lt;TRequest, TResponse&gt;)</h4>
   <h4 id="Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_Grpc_Core_Method___0___1__Grpc_Core_ServerStreamingServerMethod___0___1__" data-uid="Grpc.Core.ServerServiceDefinition.Builder.AddMethod``2(Grpc.Core.Method{``0,``1},Grpc.Core.ServerStreamingServerMethod{``0,``1})">AddMethod&lt;TRequest, TResponse&gt;(Method&lt;TRequest, TResponse&gt;, ServerStreamingServerMethod&lt;TRequest, TResponse&gt;)</h4>
-  <div class="markdown level1 summary"><p>Adds a definitions for a server streaming method.</p>
+  <div class="markdown level1 summary"><p>Adds a definition for a server streaming method.</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>
@@ -349,7 +349,7 @@
   </table>
   </table>
   <a id="Grpc_Core_ServerServiceDefinition_Builder_AddMethod_" data-uid="Grpc.Core.ServerServiceDefinition.Builder.AddMethod*"></a>
   <a id="Grpc_Core_ServerServiceDefinition_Builder_AddMethod_" data-uid="Grpc.Core.ServerServiceDefinition.Builder.AddMethod*"></a>
   <h4 id="Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_Grpc_Core_Method___0___1__Grpc_Core_UnaryServerMethod___0___1__" data-uid="Grpc.Core.ServerServiceDefinition.Builder.AddMethod``2(Grpc.Core.Method{``0,``1},Grpc.Core.UnaryServerMethod{``0,``1})">AddMethod&lt;TRequest, TResponse&gt;(Method&lt;TRequest, TResponse&gt;, UnaryServerMethod&lt;TRequest, TResponse&gt;)</h4>
   <h4 id="Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_Grpc_Core_Method___0___1__Grpc_Core_UnaryServerMethod___0___1__" data-uid="Grpc.Core.ServerServiceDefinition.Builder.AddMethod``2(Grpc.Core.Method{``0,``1},Grpc.Core.UnaryServerMethod{``0,``1})">AddMethod&lt;TRequest, TResponse&gt;(Method&lt;TRequest, TResponse&gt;, UnaryServerMethod&lt;TRequest, TResponse&gt;)</h4>
-  <div class="markdown level1 summary"><p>Adds a definitions for a single request - single response method.</p>
+  <div class="markdown level1 summary"><p>Adds a definition for a single request - single response method.</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>

+ 380 - 0
csharp/api/Grpc.Core.ServiceBinderBase.html

@@ -0,0 +1,380 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Class ServiceBinderBase
+   | gRPC C# </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Class ServiceBinderBase
+   | 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.ServiceBinderBase">
+  
+  
+  <h1 id="Grpc_Core_ServiceBinderBase" data-uid="Grpc.Core.ServiceBinderBase" class="text-break">Class ServiceBinderBase
+  </h1>
+  <div class="markdown level0 summary"><p>Allows binding server-side method implementations in alternative serving stacks.
+Instances of this class are usually populated by the <code>BindService</code> method
+that is part of the autogenerated code for a protocol buffers service definition.
+<a class="xref" href="Grpc.Core.ServerServiceDefinition.html">ServerServiceDefinition</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">ServiceBinderBase</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.dll</h6>
+  <h5 id="Grpc_Core_ServiceBinderBase_syntax">Syntax</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public class ServiceBinderBase</code></pre>
+  </div>
+  <h3 id="methods">Methods
+  </h3>
+  <a id="Grpc_Core_ServiceBinderBase_AddMethod_" data-uid="Grpc.Core.ServiceBinderBase.AddMethod*"></a>
+  <h4 id="Grpc_Core_ServiceBinderBase_AddMethod__2_Grpc_Core_Method___0___1__Grpc_Core_ClientStreamingServerMethod___0___1__" data-uid="Grpc.Core.ServiceBinderBase.AddMethod``2(Grpc.Core.Method{``0,``1},Grpc.Core.ClientStreamingServerMethod{``0,``1})">AddMethod&lt;TRequest, TResponse&gt;(Method&lt;TRequest, TResponse&gt;, ClientStreamingServerMethod&lt;TRequest, TResponse&gt;)</h4>
+  <div class="markdown level1 summary"><p>Adds a definition for a client streaming method.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public virtual void AddMethod&lt;TRequest, TResponse&gt;(Method&lt;TRequest, TResponse&gt; method, ClientStreamingServerMethod&lt;TRequest, TResponse&gt; handler)
+    where TRequest : class where TResponse : 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.Method-2.html">Method</a>&lt;TRequest, TResponse&gt;</td>
+        <td><span class="parametername">method</span></td>
+        <td><p>The method.</p>
+</td>
+      </tr>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.ClientStreamingServerMethod-2.html">ClientStreamingServerMethod</a>&lt;TRequest, TResponse&gt;</td>
+        <td><span class="parametername">handler</span></td>
+        <td><p>The method handler.</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">TRequest</span></td>
+        <td><p>The request message class.</p>
+</td>
+      </tr>
+      <tr>
+        <td><span class="parametername">TResponse</span></td>
+        <td><p>The response message class.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <a id="Grpc_Core_ServiceBinderBase_AddMethod_" data-uid="Grpc.Core.ServiceBinderBase.AddMethod*"></a>
+  <h4 id="Grpc_Core_ServiceBinderBase_AddMethod__2_Grpc_Core_Method___0___1__Grpc_Core_DuplexStreamingServerMethod___0___1__" data-uid="Grpc.Core.ServiceBinderBase.AddMethod``2(Grpc.Core.Method{``0,``1},Grpc.Core.DuplexStreamingServerMethod{``0,``1})">AddMethod&lt;TRequest, TResponse&gt;(Method&lt;TRequest, TResponse&gt;, DuplexStreamingServerMethod&lt;TRequest, TResponse&gt;)</h4>
+  <div class="markdown level1 summary"><p>Adds a definition for a bidirectional streaming method.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public virtual void AddMethod&lt;TRequest, TResponse&gt;(Method&lt;TRequest, TResponse&gt; method, DuplexStreamingServerMethod&lt;TRequest, TResponse&gt; handler)
+    where TRequest : class where TResponse : 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.Method-2.html">Method</a>&lt;TRequest, TResponse&gt;</td>
+        <td><span class="parametername">method</span></td>
+        <td><p>The method.</p>
+</td>
+      </tr>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.DuplexStreamingServerMethod-2.html">DuplexStreamingServerMethod</a>&lt;TRequest, TResponse&gt;</td>
+        <td><span class="parametername">handler</span></td>
+        <td><p>The method handler.</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">TRequest</span></td>
+        <td><p>The request message class.</p>
+</td>
+      </tr>
+      <tr>
+        <td><span class="parametername">TResponse</span></td>
+        <td><p>The response message class.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <a id="Grpc_Core_ServiceBinderBase_AddMethod_" data-uid="Grpc.Core.ServiceBinderBase.AddMethod*"></a>
+  <h4 id="Grpc_Core_ServiceBinderBase_AddMethod__2_Grpc_Core_Method___0___1__Grpc_Core_ServerStreamingServerMethod___0___1__" data-uid="Grpc.Core.ServiceBinderBase.AddMethod``2(Grpc.Core.Method{``0,``1},Grpc.Core.ServerStreamingServerMethod{``0,``1})">AddMethod&lt;TRequest, TResponse&gt;(Method&lt;TRequest, TResponse&gt;, ServerStreamingServerMethod&lt;TRequest, TResponse&gt;)</h4>
+  <div class="markdown level1 summary"><p>Adds a definition for a server streaming method.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public virtual void AddMethod&lt;TRequest, TResponse&gt;(Method&lt;TRequest, TResponse&gt; method, ServerStreamingServerMethod&lt;TRequest, TResponse&gt; handler)
+    where TRequest : class where TResponse : 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.Method-2.html">Method</a>&lt;TRequest, TResponse&gt;</td>
+        <td><span class="parametername">method</span></td>
+        <td><p>The method.</p>
+</td>
+      </tr>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.ServerStreamingServerMethod-2.html">ServerStreamingServerMethod</a>&lt;TRequest, TResponse&gt;</td>
+        <td><span class="parametername">handler</span></td>
+        <td><p>The method handler.</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">TRequest</span></td>
+        <td><p>The request message class.</p>
+</td>
+      </tr>
+      <tr>
+        <td><span class="parametername">TResponse</span></td>
+        <td><p>The response message class.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <a id="Grpc_Core_ServiceBinderBase_AddMethod_" data-uid="Grpc.Core.ServiceBinderBase.AddMethod*"></a>
+  <h4 id="Grpc_Core_ServiceBinderBase_AddMethod__2_Grpc_Core_Method___0___1__Grpc_Core_UnaryServerMethod___0___1__" data-uid="Grpc.Core.ServiceBinderBase.AddMethod``2(Grpc.Core.Method{``0,``1},Grpc.Core.UnaryServerMethod{``0,``1})">AddMethod&lt;TRequest, TResponse&gt;(Method&lt;TRequest, TResponse&gt;, UnaryServerMethod&lt;TRequest, TResponse&gt;)</h4>
+  <div class="markdown level1 summary"><p>Adds a definition for a single request - single response method.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public virtual void AddMethod&lt;TRequest, TResponse&gt;(Method&lt;TRequest, TResponse&gt; method, UnaryServerMethod&lt;TRequest, TResponse&gt; handler)
+    where TRequest : class where TResponse : 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.Method-2.html">Method</a>&lt;TRequest, TResponse&gt;</td>
+        <td><span class="parametername">method</span></td>
+        <td><p>The method.</p>
+</td>
+      </tr>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.UnaryServerMethod-2.html">UnaryServerMethod</a>&lt;TRequest, TResponse&gt;</td>
+        <td><span class="parametername">handler</span></td>
+        <td><p>The method handler.</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">TRequest</span></td>
+        <td><p>The request message class.</p>
+</td>
+      </tr>
+      <tr>
+        <td><span class="parametername">TResponse</span></td>
+        <td><p>The response message class.</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>

+ 192 - 0
csharp/api/Grpc.Core.SslClientCertificateRequestType.html

@@ -0,0 +1,192 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Enum SslClientCertificateRequestType
+   | gRPC C# </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Enum SslClientCertificateRequestType
+   | 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.SslClientCertificateRequestType">
+  
+  
+  <h1 id="Grpc_Core_SslClientCertificateRequestType" data-uid="Grpc.Core.SslClientCertificateRequestType" class="text-break">Enum SslClientCertificateRequestType
+  </h1>
+  <div class="markdown level0 summary"><p>Modes of requesting client&apos;s SSL certificate by the server.
+Corresponds to <code>grpc_ssl_client_certificate_request_type</code>.</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.dll</h6>
+  <h5 id="Grpc_Core_SslClientCertificateRequestType_syntax">Syntax</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public enum SslClientCertificateRequestType</code></pre>
+  </div>
+  <h3 id="fields">Fields
+  </h3>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    <thead>
+    <tbody>
+      <tr>
+        <td id="Grpc_Core_SslClientCertificateRequestType_DontRequest">DontRequest</td>
+        <td><p>Server does not request client certificate.
+The certificate presented by the client is not checked by the server at
+all. (A client may present a self signed or signed certificate or not
+present a certificate at all and any of those option would be accepted)</p>
+</td>
+      </tr>
+      <tr>
+        <td id="Grpc_Core_SslClientCertificateRequestType_RequestAndRequireAndVerify">RequestAndRequireAndVerify</td>
+        <td><p>Server requests client certificate and enforces that the client presents a
+certificate.
+The cerificate presented by the client is verified by the gRPC framework.
+(For a successful connection the client needs to present a certificate that
+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
+be established.</p>
+</td>
+      </tr>
+      <tr>
+        <td id="Grpc_Core_SslClientCertificateRequestType_RequestAndRequireButDontVerify">RequestAndRequireButDontVerify</td>
+        <td><p>Server requests client certificate and enforces that the client presents a
+certificate.
+If the client presents a certificate, the client authentication is left to
+the application (the necessary metadata will be available to the
+application via authentication context properties, see grpc_auth_context).
+The client&apos;s key certificate pair must be valid for the SSL connection to
+be established.</p>
+</td>
+      </tr>
+      <tr>
+        <td id="Grpc_Core_SslClientCertificateRequestType_RequestAndVerify">RequestAndVerify</td>
+        <td><p>Server requests client certificate but does not enforce that the client
+presents a certificate.
+If the client presents a certificate, the client authentication is done by
+the gRPC framework. (For a successful connection the client needs to either
+present a certificate that can be verified against the root certificate
+configured by the server or not present a certificate at all)
+The client&apos;s key certificate pair must be valid for the SSL connection to
+be established.</p>
+</td>
+      </tr>
+      <tr>
+        <td id="Grpc_Core_SslClientCertificateRequestType_RequestButDontVerify">RequestButDontVerify</td>
+        <td><p>Server requests client certificate but does not enforce that the client
+presents a certificate.
+If the client presents a certificate, the client authentication is left to
+the application (the necessary metadata will be available to the
+application via authentication context properties, see grpc_auth_context).
+The client&apos;s key certificate pair must be valid for the SSL connection to
+be established.</p>
+</td>
+      </tr>
+    </tbody>
+  </thead></thead></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>

+ 67 - 4
csharp/api/Grpc.Core.SslServerCredentials.html

@@ -130,8 +130,8 @@
   <a id="Grpc_Core_SslServerCredentials__ctor_" data-uid="Grpc.Core.SslServerCredentials.#ctor*"></a>
   <a id="Grpc_Core_SslServerCredentials__ctor_" data-uid="Grpc.Core.SslServerCredentials.#ctor*"></a>
   <h4 id="Grpc_Core_SslServerCredentials__ctor_System_Collections_Generic_IEnumerable_Grpc_Core_KeyCertificatePair__" data-uid="Grpc.Core.SslServerCredentials.#ctor(System.Collections.Generic.IEnumerable{Grpc.Core.KeyCertificatePair})">SslServerCredentials(IEnumerable&lt;KeyCertificatePair&gt;)</h4>
   <h4 id="Grpc_Core_SslServerCredentials__ctor_System_Collections_Generic_IEnumerable_Grpc_Core_KeyCertificatePair__" data-uid="Grpc.Core.SslServerCredentials.#ctor(System.Collections.Generic.IEnumerable{Grpc.Core.KeyCertificatePair})">SslServerCredentials(IEnumerable&lt;KeyCertificatePair&gt;)</h4>
   <div class="markdown level1 summary"><p>Creates server-side SSL credentials.
   <div class="markdown level1 summary"><p>Creates server-side SSL credentials.
-This constructor should be use if you do not wish to autheticate client
-using client root certificates.</p>
+This constructor should be used if you do not wish to authenticate the client.
+(client certificate won&apos;t be requested and checked by the server at all).</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>
@@ -152,6 +152,45 @@ using client root certificates.</p>
         <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;<a class="xref" href="Grpc.Core.KeyCertificatePair.html">KeyCertificatePair</a>&gt;</td>
         <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;<a class="xref" href="Grpc.Core.KeyCertificatePair.html">KeyCertificatePair</a>&gt;</td>
         <td><span class="parametername">keyCertificatePairs</span></td>
         <td><span class="parametername">keyCertificatePairs</span></td>
         <td><p>Key-certificates to use.</p>
         <td><p>Key-certificates to use.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <a id="Grpc_Core_SslServerCredentials__ctor_" data-uid="Grpc.Core.SslServerCredentials.#ctor*"></a>
+  <h4 id="Grpc_Core_SslServerCredentials__ctor_System_Collections_Generic_IEnumerable_Grpc_Core_KeyCertificatePair__System_String_Grpc_Core_SslClientCertificateRequestType_" data-uid="Grpc.Core.SslServerCredentials.#ctor(System.Collections.Generic.IEnumerable{Grpc.Core.KeyCertificatePair},System.String,Grpc.Core.SslClientCertificateRequestType)">SslServerCredentials(IEnumerable&lt;KeyCertificatePair&gt;, String, SslClientCertificateRequestType)</h4>
+  <div class="markdown level1 summary"><p>Creates server-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 SslServerCredentials(IEnumerable&lt;KeyCertificatePair&gt; keyCertificatePairs, string rootCertificates, SslClientCertificateRequestType clientCertificateRequest)</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.Collections.Generic.IEnumerable</span>&lt;<a class="xref" href="Grpc.Core.KeyCertificatePair.html">KeyCertificatePair</a>&gt;</td>
+        <td><span class="parametername">keyCertificatePairs</span></td>
+        <td><p>Key-certificates to use.</p>
+</td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.String</span></td>
+        <td><span class="parametername">rootCertificates</span></td>
+        <td><p>PEM encoded client root certificates used to authenticate client.</p>
+</td>
+      </tr>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.SslClientCertificateRequestType.html">SslClientCertificateRequestType</a></td>
+        <td><span class="parametername">clientCertificateRequest</span></td>
+        <td><p>Options for requesting and verifying client certificate.</p>
 </td>
 </td>
       </tr>
       </tr>
     </tbody>
     </tbody>
@@ -190,16 +229,40 @@ using client root certificates.</p>
       <tr>
       <tr>
         <td><span class="xref">System.Boolean</span></td>
         <td><span class="xref">System.Boolean</span></td>
         <td><span class="parametername">forceClientAuth</span></td>
         <td><span class="parametername">forceClientAuth</span></td>
-        <td><p>If true, client will be rejected unless it proves its unthenticity using against rootCertificates.</p>
+        <td><p>Deprecated, use clientCertificateRequest overload instead.</p>
 </td>
 </td>
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>
   <h3 id="properties">Properties
   <h3 id="properties">Properties
   </h3>
   </h3>
+  <a id="Grpc_Core_SslServerCredentials_ClientCertificateRequest_" data-uid="Grpc.Core.SslServerCredentials.ClientCertificateRequest*"></a>
+  <h4 id="Grpc_Core_SslServerCredentials_ClientCertificateRequest" data-uid="Grpc.Core.SslServerCredentials.ClientCertificateRequest">ClientCertificateRequest</h4>
+  <div class="markdown level1 summary"><p>Mode of requesting certificate from client by the server.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public SslClientCertificateRequestType ClientCertificateRequest { 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.SslClientCertificateRequestType.html">SslClientCertificateRequestType</a></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
   <a id="Grpc_Core_SslServerCredentials_ForceClientAuthentication_" data-uid="Grpc.Core.SslServerCredentials.ForceClientAuthentication*"></a>
   <a id="Grpc_Core_SslServerCredentials_ForceClientAuthentication_" data-uid="Grpc.Core.SslServerCredentials.ForceClientAuthentication*"></a>
   <h4 id="Grpc_Core_SslServerCredentials_ForceClientAuthentication" data-uid="Grpc.Core.SslServerCredentials.ForceClientAuthentication">ForceClientAuthentication</h4>
   <h4 id="Grpc_Core_SslServerCredentials_ForceClientAuthentication" data-uid="Grpc.Core.SslServerCredentials.ForceClientAuthentication">ForceClientAuthentication</h4>
-  <div class="markdown level1 summary"><p>If true, the authenticity of client check will be enforced.</p>
+  <div class="markdown level1 summary"><p>Deprecated. If true, the authenticity of client check will be enforced.</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>

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

@@ -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.15.0.0&quot;</code></pre>
+    <pre><code class="lang-csharp hljs">public const string CurrentAssemblyFileVersion = &quot;1.18.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.15.0&quot;</code></pre>
+    <pre><code class="lang-csharp hljs">public const string CurrentVersion = &quot;1.18.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">

+ 21 - 2
csharp/api/Grpc.Core.html

@@ -134,10 +134,13 @@ a remote call so in general you should reuse a single channel for as many calls
 </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.
-Corresponds to grpc_channel_args from grpc/grpc.h.</p>
+Corresponds to grpc_channel_args from grpc/grpc.h.
+Commonly used channel option names are defined in <code>ChannelOptions</code>,
+but any of the GRPC_ARG_* channel options names defined in grpc_types.h can be used.</p>
 </section>
 </section>
       <h4><a class="xref" href="Grpc.Core.ChannelOptions.html">ChannelOptions</a></h4>
       <h4><a class="xref" href="Grpc.Core.ChannelOptions.html">ChannelOptions</a></h4>
-      <section><p>Defines names of supported channel options.</p>
+      <section><p>Defines names of most commonly used channel options.
+Other supported options names can be found in grpc_types.h (GRPC_ARG_* definitions)</p>
 </section>
 </section>
       <h4><a class="xref" href="Grpc.Core.ClientBase.html">ClientBase</a></h4>
       <h4><a class="xref" href="Grpc.Core.ClientBase.html">ClientBase</a></h4>
       <section><p>Base class for client-side stubs.</p>
       <section><p>Base class for client-side stubs.</p>
@@ -164,6 +167,9 @@ are not accessible to explicitly C# layer, but this token still allows propagati
 </section>
 </section>
       <h4><a class="xref" href="Grpc.Core.DefaultCallInvoker.html">DefaultCallInvoker</a></h4>
       <h4><a class="xref" href="Grpc.Core.DefaultCallInvoker.html">DefaultCallInvoker</a></h4>
       <section><p>Invokes client RPCs using <a class="xref" href="Grpc.Core.Calls.html">Calls</a>.</p>
       <section><p>Invokes client RPCs using <a class="xref" href="Grpc.Core.Calls.html">Calls</a>.</p>
+</section>
+      <h4><a class="xref" href="Grpc.Core.DeserializationContext.html">DeserializationContext</a></h4>
+      <section><p>Provides access to the payload being deserialized when deserializing messages.</p>
 </section>
 </section>
       <h4><a class="xref" href="Grpc.Core.GrpcEnvironment.html">GrpcEnvironment</a></h4>
       <h4><a class="xref" href="Grpc.Core.GrpcEnvironment.html">GrpcEnvironment</a></h4>
       <section><p>Encapsulates initialization and shutdown of gRPC library.</p>
       <section><p>Encapsulates initialization and shutdown of gRPC library.</p>
@@ -190,6 +196,9 @@ gRPC supports these types of metadata:
 </section>
 </section>
       <h4><a class="xref" href="Grpc.Core.RpcException.html">RpcException</a></h4>
       <h4><a class="xref" href="Grpc.Core.RpcException.html">RpcException</a></h4>
       <section><p>Thrown when remote procedure call fails. Every <code>RpcException</code> is associated with a resulting <a class="xref" href="Grpc.Core.RpcException.html#Grpc_Core_RpcException_Status">Status</a> of the call.</p>
       <section><p>Thrown when remote procedure call fails. Every <code>RpcException</code> is associated with a resulting <a class="xref" href="Grpc.Core.RpcException.html#Grpc_Core_RpcException_Status">Status</a> of the call.</p>
+</section>
+      <h4><a class="xref" href="Grpc.Core.SerializationContext.html">SerializationContext</a></h4>
+      <section><p>Provides storage for payload when serializing a message.</p>
 </section>
 </section>
       <h4><a class="xref" href="Grpc.Core.Server.html">Server</a></h4>
       <h4><a class="xref" href="Grpc.Core.Server.html">Server</a></h4>
       <section><p>gRPC server. A single server can serve an arbitrary number of services and can listen on more than one port.</p>
       <section><p>gRPC server. A single server can serve an arbitrary number of services and can listen on more than one port.</p>
@@ -216,6 +225,12 @@ that is part of the autogenerated code for a protocol buffers service definition
 </section>
 </section>
       <h4><a class="xref" href="Grpc.Core.ServerServiceDefinition.Builder.html">ServerServiceDefinition.Builder</a></h4>
       <h4><a class="xref" href="Grpc.Core.ServerServiceDefinition.Builder.html">ServerServiceDefinition.Builder</a></h4>
       <section><p>Builder class for <a class="xref" href="Grpc.Core.ServerServiceDefinition.html">ServerServiceDefinition</a>.</p>
       <section><p>Builder class for <a class="xref" href="Grpc.Core.ServerServiceDefinition.html">ServerServiceDefinition</a>.</p>
+</section>
+      <h4><a class="xref" href="Grpc.Core.ServiceBinderBase.html">ServiceBinderBase</a></h4>
+      <section><p>Allows binding server-side method implementations in alternative serving stacks.
+Instances of this class are usually populated by the <code>BindService</code> method
+that is part of the autogenerated code for a protocol buffers service definition.
+<a class="xref" href="Grpc.Core.ServerServiceDefinition.html">ServerServiceDefinition</a></p>
 </section>
 </section>
       <h4><a class="xref" href="Grpc.Core.SslCredentials.html">SslCredentials</a></h4>
       <h4><a class="xref" href="Grpc.Core.SslCredentials.html">SslCredentials</a></h4>
       <section><p>Client-side SSL credentials.</p>
       <section><p>Client-side SSL credentials.</p>
@@ -295,6 +310,10 @@ Based on grpc_connectivity_state from grpc/grpc.h</p>
 </section>
 </section>
       <h4><a class="xref" href="Grpc.Core.MethodType.html">MethodType</a></h4>
       <h4><a class="xref" href="Grpc.Core.MethodType.html">MethodType</a></h4>
       <section><p>Method types supported by gRPC.</p>
       <section><p>Method types supported by gRPC.</p>
+</section>
+      <h4><a class="xref" href="Grpc.Core.SslClientCertificateRequestType.html">SslClientCertificateRequestType</a></h4>
+      <section><p>Modes of requesting client&apos;s SSL certificate by the server.
+Corresponds to <code>grpc_ssl_client_certificate_request_type</code>.</p>
 </section>
 </section>
       <h4><a class="xref" href="Grpc.Core.StatusCode.html">StatusCode</a></h4>
       <h4><a class="xref" href="Grpc.Core.StatusCode.html">StatusCode</a></h4>
       <section><p>Result of a remote procedure call.
       <section><p>Result of a remote procedure call.

+ 76 - 4
csharp/api/Grpc.Health.V1.Health.HealthBase.html

@@ -126,7 +126,9 @@
   </h3>
   </h3>
   <a id="Grpc_Health_V1_Health_HealthBase_Check_" data-uid="Grpc.Health.V1.Health.HealthBase.Check*"></a>
   <a id="Grpc_Health_V1_Health_HealthBase_Check_" data-uid="Grpc.Health.V1.Health.HealthBase.Check*"></a>
   <h4 id="Grpc_Health_V1_Health_HealthBase_Check_Grpc_Health_V1_HealthCheckRequest_Grpc_Core_ServerCallContext_" data-uid="Grpc.Health.V1.Health.HealthBase.Check(Grpc.Health.V1.HealthCheckRequest,Grpc.Core.ServerCallContext)">Check(HealthCheckRequest, ServerCallContext)</h4>
   <h4 id="Grpc_Health_V1_Health_HealthBase_Check_Grpc_Health_V1_HealthCheckRequest_Grpc_Core_ServerCallContext_" data-uid="Grpc.Health.V1.Health.HealthBase.Check(Grpc.Health.V1.HealthCheckRequest,Grpc.Core.ServerCallContext)">Check(HealthCheckRequest, ServerCallContext)</h4>
-  <div class="markdown level1 summary"></div>
+  <div class="markdown level1 summary"><p>If the requested service is unknown, the call will fail with status
+NOT_FOUND.</p>
+</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">
@@ -145,12 +147,14 @@
       <tr>
       <tr>
         <td><a class="xref" href="Grpc.Health.V1.HealthCheckRequest.html">HealthCheckRequest</a></td>
         <td><a class="xref" href="Grpc.Health.V1.HealthCheckRequest.html">HealthCheckRequest</a></td>
         <td><span class="parametername">request</span></td>
         <td><span class="parametername">request</span></td>
-        <td></td>
+        <td><p>The request received from the client.</p>
+</td>
       </tr>
       </tr>
       <tr>
       <tr>
         <td><a class="xref" href="Grpc.Core.ServerCallContext.html">ServerCallContext</a></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></td>
+        <td><p>The context of the server-side call handler being invoked.</p>
+</td>
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>
@@ -165,7 +169,75 @@
     <tbody>
     <tbody>
       <tr>
       <tr>
         <td><span class="xref">System.Threading.Tasks.Task</span>&lt;<a class="xref" href="Grpc.Health.V1.HealthCheckResponse.html">HealthCheckResponse</a>&gt;</td>
         <td><span class="xref">System.Threading.Tasks.Task</span>&lt;<a class="xref" href="Grpc.Health.V1.HealthCheckResponse.html">HealthCheckResponse</a>&gt;</td>
-        <td></td>
+        <td><p>The response to send back to the client (wrapped by a task).</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <a id="Grpc_Health_V1_Health_HealthBase_Watch_" data-uid="Grpc.Health.V1.Health.HealthBase.Watch*"></a>
+  <h4 id="Grpc_Health_V1_Health_HealthBase_Watch_Grpc_Health_V1_HealthCheckRequest_Grpc_Core_IServerStreamWriter_Grpc_Health_V1_HealthCheckResponse__Grpc_Core_ServerCallContext_" data-uid="Grpc.Health.V1.Health.HealthBase.Watch(Grpc.Health.V1.HealthCheckRequest,Grpc.Core.IServerStreamWriter{Grpc.Health.V1.HealthCheckResponse},Grpc.Core.ServerCallContext)">Watch(HealthCheckRequest, IServerStreamWriter&lt;HealthCheckResponse&gt;, ServerCallContext)</h4>
+  <div class="markdown level1 summary"><p>Performs a watch for the serving status of the requested service.
+The server will immediately send back a message indicating the current
+serving status.  It will then subsequently send a new message whenever
+the service&apos;s serving status changes.</p>
+<p>If the requested service is unknown when the call is received, the
+server will send a message setting the serving status to
+SERVICE_UNKNOWN but will <em>not</em> terminate the call.  If at some
+future point, the serving status of the service becomes known, the
+server will send a new message with the service&apos;s serving status.</p>
+<p>If the call terminates with status UNIMPLEMENTED, then clients
+should assume this method is not supported and should not retry the
+call.  If the call terminates with any other status (including OK),
+clients should retry the call with appropriate exponential backoff.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public virtual Task Watch(HealthCheckRequest request, IServerStreamWriter&lt;HealthCheckResponse&gt; responseStream, ServerCallContext 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.Health.V1.HealthCheckRequest.html">HealthCheckRequest</a></td>
+        <td><span class="parametername">request</span></td>
+        <td><p>The request received from the client.</p>
+</td>
+      </tr>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.IServerStreamWriter-1.html">IServerStreamWriter</a>&lt;<a class="xref" href="Grpc.Health.V1.HealthCheckResponse.html">HealthCheckResponse</a>&gt;</td>
+        <td><span class="parametername">responseStream</span></td>
+        <td><p>Used for sending responses back to the client.</p>
+</td>
+      </tr>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.ServerCallContext.html">ServerCallContext</a></td>
+        <td><span class="parametername">context</span></td>
+        <td><p>The context of the server-side call handler being invoked.</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></td>
+        <td><p>A task indicating completion of the handler.</p>
+</td>
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>

+ 178 - 20
csharp/api/Grpc.Health.V1.Health.HealthClient.html

@@ -225,7 +225,9 @@
   </h3>
   </h3>
   <a id="Grpc_Health_V1_Health_HealthClient_Check_" data-uid="Grpc.Health.V1.Health.HealthClient.Check*"></a>
   <a id="Grpc_Health_V1_Health_HealthClient_Check_" data-uid="Grpc.Health.V1.Health.HealthClient.Check*"></a>
   <h4 id="Grpc_Health_V1_Health_HealthClient_Check_Grpc_Health_V1_HealthCheckRequest_Grpc_Core_CallOptions_" data-uid="Grpc.Health.V1.Health.HealthClient.Check(Grpc.Health.V1.HealthCheckRequest,Grpc.Core.CallOptions)">Check(HealthCheckRequest, CallOptions)</h4>
   <h4 id="Grpc_Health_V1_Health_HealthClient_Check_Grpc_Health_V1_HealthCheckRequest_Grpc_Core_CallOptions_" data-uid="Grpc.Health.V1.Health.HealthClient.Check(Grpc.Health.V1.HealthCheckRequest,Grpc.Core.CallOptions)">Check(HealthCheckRequest, CallOptions)</h4>
-  <div class="markdown level1 summary"></div>
+  <div class="markdown level1 summary"><p>If the requested service is unknown, the call will fail with status
+NOT_FOUND.</p>
+</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">
@@ -244,12 +246,14 @@
       <tr>
       <tr>
         <td><a class="xref" href="Grpc.Health.V1.HealthCheckRequest.html">HealthCheckRequest</a></td>
         <td><a class="xref" href="Grpc.Health.V1.HealthCheckRequest.html">HealthCheckRequest</a></td>
         <td><span class="parametername">request</span></td>
         <td><span class="parametername">request</span></td>
-        <td></td>
+        <td><p>The request to send to the server.</p>
+</td>
       </tr>
       </tr>
       <tr>
       <tr>
         <td><a class="xref" href="Grpc.Core.CallOptions.html">CallOptions</a></td>
         <td><a class="xref" href="Grpc.Core.CallOptions.html">CallOptions</a></td>
         <td><span class="parametername">options</span></td>
         <td><span class="parametername">options</span></td>
-        <td></td>
+        <td><p>The options for the call.</p>
+</td>
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>
@@ -264,13 +268,16 @@
     <tbody>
     <tbody>
       <tr>
       <tr>
         <td><a class="xref" href="Grpc.Health.V1.HealthCheckResponse.html">HealthCheckResponse</a></td>
         <td><a class="xref" href="Grpc.Health.V1.HealthCheckResponse.html">HealthCheckResponse</a></td>
-        <td></td>
+        <td><p>The response received from the server.</p>
+</td>
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>
   <a id="Grpc_Health_V1_Health_HealthClient_Check_" data-uid="Grpc.Health.V1.Health.HealthClient.Check*"></a>
   <a id="Grpc_Health_V1_Health_HealthClient_Check_" data-uid="Grpc.Health.V1.Health.HealthClient.Check*"></a>
   <h4 id="Grpc_Health_V1_Health_HealthClient_Check_Grpc_Health_V1_HealthCheckRequest_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_" data-uid="Grpc.Health.V1.Health.HealthClient.Check(Grpc.Health.V1.HealthCheckRequest,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken)">Check(HealthCheckRequest, Metadata, Nullable&lt;DateTime&gt;, CancellationToken)</h4>
   <h4 id="Grpc_Health_V1_Health_HealthClient_Check_Grpc_Health_V1_HealthCheckRequest_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_" data-uid="Grpc.Health.V1.Health.HealthClient.Check(Grpc.Health.V1.HealthCheckRequest,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken)">Check(HealthCheckRequest, Metadata, Nullable&lt;DateTime&gt;, CancellationToken)</h4>
-  <div class="markdown level1 summary"></div>
+  <div class="markdown level1 summary"><p>If the requested service is unknown, the call will fail with status
+NOT_FOUND.</p>
+</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">
@@ -289,22 +296,26 @@
       <tr>
       <tr>
         <td><a class="xref" href="Grpc.Health.V1.HealthCheckRequest.html">HealthCheckRequest</a></td>
         <td><a class="xref" href="Grpc.Health.V1.HealthCheckRequest.html">HealthCheckRequest</a></td>
         <td><span class="parametername">request</span></td>
         <td><span class="parametername">request</span></td>
-        <td></td>
+        <td><p>The request to send to the server.</p>
+</td>
       </tr>
       </tr>
       <tr>
       <tr>
         <td><a class="xref" href="Grpc.Core.Metadata.html">Metadata</a></td>
         <td><a class="xref" href="Grpc.Core.Metadata.html">Metadata</a></td>
         <td><span class="parametername">headers</span></td>
         <td><span class="parametername">headers</span></td>
-        <td></td>
+        <td><p>The initial metadata to send with the call. This parameter is optional.</p>
+</td>
       </tr>
       </tr>
       <tr>
       <tr>
         <td><span class="xref">System.Nullable</span>&lt;<span class="xref">System.DateTime</span>&gt;</td>
         <td><span class="xref">System.Nullable</span>&lt;<span class="xref">System.DateTime</span>&gt;</td>
         <td><span class="parametername">deadline</span></td>
         <td><span class="parametername">deadline</span></td>
-        <td></td>
+        <td><p>An optional deadline for the call. The call will be cancelled if deadline is hit.</p>
+</td>
       </tr>
       </tr>
       <tr>
       <tr>
         <td><span class="xref">System.Threading.CancellationToken</span></td>
         <td><span class="xref">System.Threading.CancellationToken</span></td>
         <td><span class="parametername">cancellationToken</span></td>
         <td><span class="parametername">cancellationToken</span></td>
-        <td></td>
+        <td><p>An optional token for canceling the call.</p>
+</td>
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>
@@ -319,13 +330,16 @@
     <tbody>
     <tbody>
       <tr>
       <tr>
         <td><a class="xref" href="Grpc.Health.V1.HealthCheckResponse.html">HealthCheckResponse</a></td>
         <td><a class="xref" href="Grpc.Health.V1.HealthCheckResponse.html">HealthCheckResponse</a></td>
-        <td></td>
+        <td><p>The response received from the server.</p>
+</td>
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>
   <a id="Grpc_Health_V1_Health_HealthClient_CheckAsync_" data-uid="Grpc.Health.V1.Health.HealthClient.CheckAsync*"></a>
   <a id="Grpc_Health_V1_Health_HealthClient_CheckAsync_" data-uid="Grpc.Health.V1.Health.HealthClient.CheckAsync*"></a>
   <h4 id="Grpc_Health_V1_Health_HealthClient_CheckAsync_Grpc_Health_V1_HealthCheckRequest_Grpc_Core_CallOptions_" data-uid="Grpc.Health.V1.Health.HealthClient.CheckAsync(Grpc.Health.V1.HealthCheckRequest,Grpc.Core.CallOptions)">CheckAsync(HealthCheckRequest, CallOptions)</h4>
   <h4 id="Grpc_Health_V1_Health_HealthClient_CheckAsync_Grpc_Health_V1_HealthCheckRequest_Grpc_Core_CallOptions_" data-uid="Grpc.Health.V1.Health.HealthClient.CheckAsync(Grpc.Health.V1.HealthCheckRequest,Grpc.Core.CallOptions)">CheckAsync(HealthCheckRequest, CallOptions)</h4>
-  <div class="markdown level1 summary"></div>
+  <div class="markdown level1 summary"><p>If the requested service is unknown, the call will fail with status
+NOT_FOUND.</p>
+</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">
@@ -344,12 +358,14 @@
       <tr>
       <tr>
         <td><a class="xref" href="Grpc.Health.V1.HealthCheckRequest.html">HealthCheckRequest</a></td>
         <td><a class="xref" href="Grpc.Health.V1.HealthCheckRequest.html">HealthCheckRequest</a></td>
         <td><span class="parametername">request</span></td>
         <td><span class="parametername">request</span></td>
-        <td></td>
+        <td><p>The request to send to the server.</p>
+</td>
       </tr>
       </tr>
       <tr>
       <tr>
         <td><a class="xref" href="Grpc.Core.CallOptions.html">CallOptions</a></td>
         <td><a class="xref" href="Grpc.Core.CallOptions.html">CallOptions</a></td>
         <td><span class="parametername">options</span></td>
         <td><span class="parametername">options</span></td>
-        <td></td>
+        <td><p>The options for the call.</p>
+</td>
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>
@@ -364,13 +380,16 @@
     <tbody>
     <tbody>
       <tr>
       <tr>
         <td><a class="xref" href="Grpc.Core.AsyncUnaryCall-1.html">AsyncUnaryCall</a>&lt;<a class="xref" href="Grpc.Health.V1.HealthCheckResponse.html">HealthCheckResponse</a>&gt;</td>
         <td><a class="xref" href="Grpc.Core.AsyncUnaryCall-1.html">AsyncUnaryCall</a>&lt;<a class="xref" href="Grpc.Health.V1.HealthCheckResponse.html">HealthCheckResponse</a>&gt;</td>
-        <td></td>
+        <td><p>The call object.</p>
+</td>
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>
   <a id="Grpc_Health_V1_Health_HealthClient_CheckAsync_" data-uid="Grpc.Health.V1.Health.HealthClient.CheckAsync*"></a>
   <a id="Grpc_Health_V1_Health_HealthClient_CheckAsync_" data-uid="Grpc.Health.V1.Health.HealthClient.CheckAsync*"></a>
   <h4 id="Grpc_Health_V1_Health_HealthClient_CheckAsync_Grpc_Health_V1_HealthCheckRequest_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_" data-uid="Grpc.Health.V1.Health.HealthClient.CheckAsync(Grpc.Health.V1.HealthCheckRequest,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken)">CheckAsync(HealthCheckRequest, Metadata, Nullable&lt;DateTime&gt;, CancellationToken)</h4>
   <h4 id="Grpc_Health_V1_Health_HealthClient_CheckAsync_Grpc_Health_V1_HealthCheckRequest_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_" data-uid="Grpc.Health.V1.Health.HealthClient.CheckAsync(Grpc.Health.V1.HealthCheckRequest,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken)">CheckAsync(HealthCheckRequest, Metadata, Nullable&lt;DateTime&gt;, CancellationToken)</h4>
-  <div class="markdown level1 summary"></div>
+  <div class="markdown level1 summary"><p>If the requested service is unknown, the call will fail with status
+NOT_FOUND.</p>
+</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">
@@ -389,22 +408,26 @@
       <tr>
       <tr>
         <td><a class="xref" href="Grpc.Health.V1.HealthCheckRequest.html">HealthCheckRequest</a></td>
         <td><a class="xref" href="Grpc.Health.V1.HealthCheckRequest.html">HealthCheckRequest</a></td>
         <td><span class="parametername">request</span></td>
         <td><span class="parametername">request</span></td>
-        <td></td>
+        <td><p>The request to send to the server.</p>
+</td>
       </tr>
       </tr>
       <tr>
       <tr>
         <td><a class="xref" href="Grpc.Core.Metadata.html">Metadata</a></td>
         <td><a class="xref" href="Grpc.Core.Metadata.html">Metadata</a></td>
         <td><span class="parametername">headers</span></td>
         <td><span class="parametername">headers</span></td>
-        <td></td>
+        <td><p>The initial metadata to send with the call. This parameter is optional.</p>
+</td>
       </tr>
       </tr>
       <tr>
       <tr>
         <td><span class="xref">System.Nullable</span>&lt;<span class="xref">System.DateTime</span>&gt;</td>
         <td><span class="xref">System.Nullable</span>&lt;<span class="xref">System.DateTime</span>&gt;</td>
         <td><span class="parametername">deadline</span></td>
         <td><span class="parametername">deadline</span></td>
-        <td></td>
+        <td><p>An optional deadline for the call. The call will be cancelled if deadline is hit.</p>
+</td>
       </tr>
       </tr>
       <tr>
       <tr>
         <td><span class="xref">System.Threading.CancellationToken</span></td>
         <td><span class="xref">System.Threading.CancellationToken</span></td>
         <td><span class="parametername">cancellationToken</span></td>
         <td><span class="parametername">cancellationToken</span></td>
-        <td></td>
+        <td><p>An optional token for canceling the call.</p>
+</td>
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>
@@ -419,7 +442,8 @@
     <tbody>
     <tbody>
       <tr>
       <tr>
         <td><a class="xref" href="Grpc.Core.AsyncUnaryCall-1.html">AsyncUnaryCall</a>&lt;<a class="xref" href="Grpc.Health.V1.HealthCheckResponse.html">HealthCheckResponse</a>&gt;</td>
         <td><a class="xref" href="Grpc.Core.AsyncUnaryCall-1.html">AsyncUnaryCall</a>&lt;<a class="xref" href="Grpc.Health.V1.HealthCheckResponse.html">HealthCheckResponse</a>&gt;</td>
-        <td></td>
+        <td><p>The call object.</p>
+</td>
       </tr>
       </tr>
     </tbody>
     </tbody>
   </table>
   </table>
@@ -466,6 +490,140 @@
   </table>
   </table>
   <h5 class="overrides">Overrides</h5>
   <h5 class="overrides">Overrides</h5>
   <div><span class="xref">Grpc.Core.ClientBase&lt;Grpc.Health.V1.Health.HealthClient&gt;.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration)</span></div>
   <div><span class="xref">Grpc.Core.ClientBase&lt;Grpc.Health.V1.Health.HealthClient&gt;.NewInstance(Grpc.Core.ClientBase.ClientBaseConfiguration)</span></div>
+  <a id="Grpc_Health_V1_Health_HealthClient_Watch_" data-uid="Grpc.Health.V1.Health.HealthClient.Watch*"></a>
+  <h4 id="Grpc_Health_V1_Health_HealthClient_Watch_Grpc_Health_V1_HealthCheckRequest_Grpc_Core_CallOptions_" data-uid="Grpc.Health.V1.Health.HealthClient.Watch(Grpc.Health.V1.HealthCheckRequest,Grpc.Core.CallOptions)">Watch(HealthCheckRequest, CallOptions)</h4>
+  <div class="markdown level1 summary"><p>Performs a watch for the serving status of the requested service.
+The server will immediately send back a message indicating the current
+serving status.  It will then subsequently send a new message whenever
+the service&apos;s serving status changes.</p>
+<p>If the requested service is unknown when the call is received, the
+server will send a message setting the serving status to
+SERVICE_UNKNOWN but will <em>not</em> terminate the call.  If at some
+future point, the serving status of the service becomes known, the
+server will send a new message with the service&apos;s serving status.</p>
+<p>If the call terminates with status UNIMPLEMENTED, then clients
+should assume this method is not supported and should not retry the
+call.  If the call terminates with any other status (including OK),
+clients should retry the call with appropriate exponential backoff.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public virtual AsyncServerStreamingCall&lt;HealthCheckResponse&gt; Watch(HealthCheckRequest request, CallOptions options)</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.Health.V1.HealthCheckRequest.html">HealthCheckRequest</a></td>
+        <td><span class="parametername">request</span></td>
+        <td><p>The request to send to the server.</p>
+</td>
+      </tr>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.CallOptions.html">CallOptions</a></td>
+        <td><span class="parametername">options</span></td>
+        <td><p>The options for the call.</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><a class="xref" href="Grpc.Core.AsyncServerStreamingCall-1.html">AsyncServerStreamingCall</a>&lt;<a class="xref" href="Grpc.Health.V1.HealthCheckResponse.html">HealthCheckResponse</a>&gt;</td>
+        <td><p>The call object.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <a id="Grpc_Health_V1_Health_HealthClient_Watch_" data-uid="Grpc.Health.V1.Health.HealthClient.Watch*"></a>
+  <h4 id="Grpc_Health_V1_Health_HealthClient_Watch_Grpc_Health_V1_HealthCheckRequest_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_" data-uid="Grpc.Health.V1.Health.HealthClient.Watch(Grpc.Health.V1.HealthCheckRequest,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken)">Watch(HealthCheckRequest, Metadata, Nullable&lt;DateTime&gt;, CancellationToken)</h4>
+  <div class="markdown level1 summary"><p>Performs a watch for the serving status of the requested service.
+The server will immediately send back a message indicating the current
+serving status.  It will then subsequently send a new message whenever
+the service&apos;s serving status changes.</p>
+<p>If the requested service is unknown when the call is received, the
+server will send a message setting the serving status to
+SERVICE_UNKNOWN but will <em>not</em> terminate the call.  If at some
+future point, the serving status of the service becomes known, the
+server will send a new message with the service&apos;s serving status.</p>
+<p>If the call terminates with status UNIMPLEMENTED, then clients
+should assume this method is not supported and should not retry the
+call.  If the call terminates with any other status (including OK),
+clients should retry the call with appropriate exponential backoff.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public virtual AsyncServerStreamingCall&lt;HealthCheckResponse&gt; Watch(HealthCheckRequest request, Metadata headers = null, DateTime? deadline = default(DateTime? ), CancellationToken cancellationToken = default(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><a class="xref" href="Grpc.Health.V1.HealthCheckRequest.html">HealthCheckRequest</a></td>
+        <td><span class="parametername">request</span></td>
+        <td><p>The request to send to the server.</p>
+</td>
+      </tr>
+      <tr>
+        <td><a class="xref" href="Grpc.Core.Metadata.html">Metadata</a></td>
+        <td><span class="parametername">headers</span></td>
+        <td><p>The initial metadata to send with the call. This parameter is optional.</p>
+</td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Nullable</span>&lt;<span class="xref">System.DateTime</span>&gt;</td>
+        <td><span class="parametername">deadline</span></td>
+        <td><p>An optional deadline for the call. The call will be cancelled if deadline is hit.</p>
+</td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Threading.CancellationToken</span></td>
+        <td><span class="parametername">cancellationToken</span></td>
+        <td><p>An optional token for canceling the call.</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><a class="xref" href="Grpc.Core.AsyncServerStreamingCall-1.html">AsyncServerStreamingCall</a>&lt;<a class="xref" href="Grpc.Health.V1.HealthCheckResponse.html">HealthCheckResponse</a>&gt;</td>
+        <td><p>The call object.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
 </article>
 </article>
           </div>
           </div>
           
           

+ 34 - 0
csharp/api/Grpc.Health.V1.Health.html

@@ -149,6 +149,40 @@
   <h3 id="methods">Methods
   <h3 id="methods">Methods
   </h3>
   </h3>
   <a id="Grpc_Health_V1_Health_BindService_" data-uid="Grpc.Health.V1.Health.BindService*"></a>
   <a id="Grpc_Health_V1_Health_BindService_" data-uid="Grpc.Health.V1.Health.BindService*"></a>
+  <h4 id="Grpc_Health_V1_Health_BindService_Grpc_Core_ServiceBinderBase_Grpc_Health_V1_Health_HealthBase_" data-uid="Grpc.Health.V1.Health.BindService(Grpc.Core.ServiceBinderBase,Grpc.Health.V1.Health.HealthBase)">BindService(ServiceBinderBase, Health.HealthBase)</h4>
+  <div class="markdown level1 summary"><p>Register service method implementations with a service binder. Useful when customizing the service binding logic.
+Note: this method is part of an experimental API that can change or be removed without any prior notice.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public static void BindService(ServiceBinderBase serviceBinder, Health.HealthBase serviceImpl)</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.ServiceBinderBase.html">ServiceBinderBase</a></td>
+        <td><span class="parametername">serviceBinder</span></td>
+        <td><p>Service methods will be bound by calling <code>AddMethod</code> on this object.</p>
+</td>
+      </tr>
+      <tr>
+        <td><a class="xref" href="Grpc.Health.V1.Health.HealthBase.html">Health.HealthBase</a></td>
+        <td><span class="parametername">serviceImpl</span></td>
+        <td><p>An object implementing the server-side handling logic.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <a id="Grpc_Health_V1_Health_BindService_" data-uid="Grpc.Health.V1.Health.BindService*"></a>
   <h4 id="Grpc_Health_V1_Health_BindService_Grpc_Health_V1_Health_HealthBase_" data-uid="Grpc.Health.V1.Health.BindService(Grpc.Health.V1.Health.HealthBase)">BindService(Health.HealthBase)</h4>
   <h4 id="Grpc_Health_V1_Health_BindService_Grpc_Health_V1_Health_HealthBase_" data-uid="Grpc.Health.V1.Health.BindService(Grpc.Health.V1.Health.HealthBase)">BindService(Health.HealthBase)</h4>
   <div class="markdown level1 summary"><p>Creates service definition that can be registered with a server</p>
   <div class="markdown level1 summary"><p>Creates service definition that can be registered with a server</p>
 </div>
 </div>

+ 5 - 0
csharp/api/Grpc.Health.V1.HealthCheckResponse.Types.ServingStatus.html

@@ -105,6 +105,11 @@
         <td id="Grpc_Health_V1_HealthCheckResponse_Types_ServingStatus_NotServing">NotServing</td>
         <td id="Grpc_Health_V1_HealthCheckResponse_Types_ServingStatus_NotServing">NotServing</td>
         <td></td>
         <td></td>
       </tr>
       </tr>
+      <tr>
+        <td id="Grpc_Health_V1_HealthCheckResponse_Types_ServingStatus_ServiceUnknown">ServiceUnknown</td>
+        <td><p>Used only by the Watch method.</p>
+</td>
+      </tr>
       <tr>
       <tr>
         <td id="Grpc_Health_V1_HealthCheckResponse_Types_ServingStatus_Serving">Serving</td>
         <td id="Grpc_Health_V1_HealthCheckResponse_Types_ServingStatus_Serving">Serving</td>
         <td></td>
         <td></td>

+ 3 - 0
csharp/api/Grpc.HealthCheck.HealthServiceImpl.html

@@ -98,6 +98,9 @@ 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_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>
     <div>
       <span class="xref">System.Object.Equals(System.Object)</span>
       <span class="xref">System.Object.Equals(System.Object)</span>
     </div>
     </div>

+ 12 - 0
csharp/api/toc.html

@@ -109,6 +109,9 @@
                   <li>
                   <li>
                     <a href="Grpc.Core.DefaultCallInvoker.html" name="" title="DefaultCallInvoker">DefaultCallInvoker</a>
                     <a href="Grpc.Core.DefaultCallInvoker.html" name="" title="DefaultCallInvoker">DefaultCallInvoker</a>
                   </li>
                   </li>
+                  <li>
+                    <a href="Grpc.Core.DeserializationContext.html" name="" title="DeserializationContext">DeserializationContext</a>
+                  </li>
                   <li>
                   <li>
                     <a href="Grpc.Core.DuplexStreamingServerMethod-2.html" name="" title="DuplexStreamingServerMethod&lt;TRequest, TResponse&gt;">DuplexStreamingServerMethod&lt;TRequest, TResponse&gt;</a>
                     <a href="Grpc.Core.DuplexStreamingServerMethod-2.html" name="" title="DuplexStreamingServerMethod&lt;TRequest, TResponse&gt;">DuplexStreamingServerMethod&lt;TRequest, TResponse&gt;</a>
                   </li>
                   </li>
@@ -154,6 +157,9 @@
                   <li>
                   <li>
                     <a href="Grpc.Core.RpcException.html" name="" title="RpcException">RpcException</a>
                     <a href="Grpc.Core.RpcException.html" name="" title="RpcException">RpcException</a>
                   </li>
                   </li>
+                  <li>
+                    <a href="Grpc.Core.SerializationContext.html" name="" title="SerializationContext">SerializationContext</a>
+                  </li>
                   <li>
                   <li>
                     <a href="Grpc.Core.Server.html" name="" title="Server">Server</a>
                     <a href="Grpc.Core.Server.html" name="" title="Server">Server</a>
                   </li>
                   </li>
@@ -181,6 +187,12 @@
                   <li>
                   <li>
                     <a href="Grpc.Core.ServerStreamingServerMethod-2.html" name="" title="ServerStreamingServerMethod&lt;TRequest, TResponse&gt;">ServerStreamingServerMethod&lt;TRequest, TResponse&gt;</a>
                     <a href="Grpc.Core.ServerStreamingServerMethod-2.html" name="" title="ServerStreamingServerMethod&lt;TRequest, TResponse&gt;">ServerStreamingServerMethod&lt;TRequest, TResponse&gt;</a>
                   </li>
                   </li>
+                  <li>
+                    <a href="Grpc.Core.ServiceBinderBase.html" name="" title="ServiceBinderBase">ServiceBinderBase</a>
+                  </li>
+                  <li>
+                    <a href="Grpc.Core.SslClientCertificateRequestType.html" name="" title="SslClientCertificateRequestType">SslClientCertificateRequestType</a>
+                  </li>
                   <li>
                   <li>
                     <a href="Grpc.Core.SslCredentials.html" name="" title="SslCredentials">SslCredentials</a>
                     <a href="Grpc.Core.SslCredentials.html" name="" title="SslCredentials">SslCredentials</a>
                   </li>
                   </li>

Разлика између датотеке није приказан због своје велике величине
+ 0 - 13
csharp/index.json


+ 66 - 18
csharp/manifest.json

@@ -210,7 +210,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.Channel.html",
           "relative_path": "api/Grpc.Core.Channel.html",
-          "hash": "aI1c2c1qMlzddqDifTDQ5g=="
+          "hash": "Tp/yUhtCzdGjQLuKKOAIZQ=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -246,7 +246,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.ChannelOption.html",
           "relative_path": "api/Grpc.Core.ChannelOption.html",
-          "hash": "nYzzrWTbG4qnXRtNw1H43g=="
+          "hash": "qGGxj7AiAHpn5fJHTeioJA=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -258,7 +258,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.ChannelOptions.html",
           "relative_path": "api/Grpc.Core.ChannelOptions.html",
-          "hash": "fEbTQRvoWVaDs9sGsHahkw=="
+          "hash": "vbaHnPMhnPWit+1a8uX7Cw=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -372,6 +372,18 @@
       "is_incremental": false,
       "is_incremental": false,
       "version": ""
       "version": ""
     },
     },
+    {
+      "type": "ManagedReference",
+      "source_relative_path": "obj/api/Grpc.Core.DeserializationContext.yml",
+      "output": {
+        ".html": {
+          "relative_path": "api/Grpc.Core.DeserializationContext.html",
+          "hash": "3IoCZlx7mNEM66DaPVRs2Q=="
+        }
+      },
+      "is_incremental": false,
+      "version": ""
+    },
     {
     {
       "type": "ManagedReference",
       "type": "ManagedReference",
       "source_relative_path": "obj/api/Grpc.Core.DuplexStreamingServerMethod-2.yml",
       "source_relative_path": "obj/api/Grpc.Core.DuplexStreamingServerMethod-2.yml",
@@ -690,7 +702,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.Marshaller-1.html",
           "relative_path": "api/Grpc.Core.Marshaller-1.html",
-          "hash": "KFVOE9nrYKozw3yvw84nZQ=="
+          "hash": "Nodls6kUhvgD891cuQx39A=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -702,7 +714,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.Marshallers.html",
           "relative_path": "api/Grpc.Core.Marshallers.html",
-          "hash": "LP6w1X4JHOcKceFZTV1TJA=="
+          "hash": "9it26sCpVNAFIrxj3w/neA=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -714,7 +726,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.Metadata.Entry.html",
           "relative_path": "api/Grpc.Core.Metadata.Entry.html",
-          "hash": "iA55kcpkVrdsY653huyZEw=="
+          "hash": "TyNRhLAXPvFILYiTtlL+0w=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -726,7 +738,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.Metadata.html",
           "relative_path": "api/Grpc.Core.Metadata.html",
-          "hash": "dyE7j//D2Ohe0aoHmU/SqQ=="
+          "hash": "0HfeI4T4P+P9excRxSf1zw=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -762,7 +774,19 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.RpcException.html",
           "relative_path": "api/Grpc.Core.RpcException.html",
-          "hash": "+YI14ff7TzZqViz2in5wIQ=="
+          "hash": "lwSwExJljp0X899M8nVStg=="
+        }
+      },
+      "is_incremental": false,
+      "version": ""
+    },
+    {
+      "type": "ManagedReference",
+      "source_relative_path": "obj/api/Grpc.Core.SerializationContext.yml",
+      "output": {
+        ".html": {
+          "relative_path": "api/Grpc.Core.SerializationContext.html",
+          "hash": "6DFom/uN7msF/Qj2tYrvAQ=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -846,7 +870,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.ServerServiceDefinition.Builder.html",
           "relative_path": "api/Grpc.Core.ServerServiceDefinition.Builder.html",
-          "hash": "vy5n0SDBdWVWh7vJ9+ku/Q=="
+          "hash": "Bg1pwjAV3dWxx2izXiVsPg=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -876,6 +900,30 @@
       "is_incremental": false,
       "is_incremental": false,
       "version": ""
       "version": ""
     },
     },
+    {
+      "type": "ManagedReference",
+      "source_relative_path": "obj/api/Grpc.Core.ServiceBinderBase.yml",
+      "output": {
+        ".html": {
+          "relative_path": "api/Grpc.Core.ServiceBinderBase.html",
+          "hash": "HBhlB8mzyj+wKPDEB4IHKA=="
+        }
+      },
+      "is_incremental": false,
+      "version": ""
+    },
+    {
+      "type": "ManagedReference",
+      "source_relative_path": "obj/api/Grpc.Core.SslClientCertificateRequestType.yml",
+      "output": {
+        ".html": {
+          "relative_path": "api/Grpc.Core.SslClientCertificateRequestType.html",
+          "hash": "TTCS6TZibjYxDdhxDYYTLA=="
+        }
+      },
+      "is_incremental": false,
+      "version": ""
+    },
     {
     {
       "type": "ManagedReference",
       "type": "ManagedReference",
       "source_relative_path": "obj/api/Grpc.Core.SslCredentials.yml",
       "source_relative_path": "obj/api/Grpc.Core.SslCredentials.yml",
@@ -894,7 +942,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.SslServerCredentials.html",
           "relative_path": "api/Grpc.Core.SslServerCredentials.html",
-          "hash": "Wm6/z8IXsGNna77iUG23PA=="
+          "hash": "/VTjR/ZTQsb/2fULD2Vb6A=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -1038,7 +1086,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.VersionInfo.html",
           "relative_path": "api/Grpc.Core.VersionInfo.html",
-          "hash": "ICHhqEPJaiZoK6wBlV4E0g=="
+          "hash": "/wy/avE/vRCVg+Z/VY2SwA=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -1074,7 +1122,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Core.html",
           "relative_path": "api/Grpc.Core.html",
-          "hash": "yb77QEVKO+/ioh+qUUQV4Q=="
+          "hash": "MUAzb+voJdcDGNWR9vBbOQ=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -1086,7 +1134,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Health.V1.Health.HealthBase.html",
           "relative_path": "api/Grpc.Health.V1.Health.HealthBase.html",
-          "hash": "NCMQmE66kv1I9JrBxcSa7Q=="
+          "hash": "aOdqCs0piSnp1tvmoSwBvA=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -1098,7 +1146,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Health.V1.Health.HealthClient.html",
           "relative_path": "api/Grpc.Health.V1.Health.HealthClient.html",
-          "hash": "nP5bIuSK95fU8zkJ+qJdFA=="
+          "hash": "hz+q3mMNa2zXTEmEe/KY4g=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -1110,7 +1158,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Health.V1.Health.html",
           "relative_path": "api/Grpc.Health.V1.Health.html",
-          "hash": "3LTi8TXyfwK39yND9dyHRA=="
+          "hash": "rIPX0gwU0pM4f5SkOf8hfg=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -1134,7 +1182,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.Health.V1.HealthCheckResponse.Types.ServingStatus.html",
           "relative_path": "api/Grpc.Health.V1.HealthCheckResponse.Types.ServingStatus.html",
-          "hash": "enJ1cHkkJqhEOdjNkRBlLQ=="
+          "hash": "usBe/dRC+QPFFqpAWcta7A=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -1194,7 +1242,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/Grpc.HealthCheck.HealthServiceImpl.html",
           "relative_path": "api/Grpc.HealthCheck.HealthServiceImpl.html",
-          "hash": "E8ga0+Lp6ojRZ5SipfEacw=="
+          "hash": "CHyxEwc3c8aF7U+WNpyJdg=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,
@@ -1218,7 +1266,7 @@
       "output": {
       "output": {
         ".html": {
         ".html": {
           "relative_path": "api/toc.html",
           "relative_path": "api/toc.html",
-          "hash": "U62BLSnRVDWnclzPQ6NCkA=="
+          "hash": "SElRUlPIjSdhHwAZlmOZeQ=="
         }
         }
       },
       },
       "is_incremental": false,
       "is_incremental": false,

+ 343 - 0
csharp/xrefmap.yml

@@ -1501,6 +1501,22 @@ references:
   isSpec: "True"
   isSpec: "True"
   fullName: Grpc.Core.Channel.Target
   fullName: Grpc.Core.Channel.Target
   nameWithType: Channel.Target
   nameWithType: Channel.Target
+- uid: Grpc.Core.Channel.TryWaitForStateChangedAsync(Grpc.Core.ChannelState,System.Nullable{System.DateTime})
+  name: TryWaitForStateChangedAsync(ChannelState, Nullable<DateTime>)
+  href: api/Grpc.Core.Channel.html#Grpc_Core_Channel_TryWaitForStateChangedAsync_Grpc_Core_ChannelState_System_Nullable_System_DateTime__
+  commentId: M:Grpc.Core.Channel.TryWaitForStateChangedAsync(Grpc.Core.ChannelState,System.Nullable{System.DateTime})
+  name.vb: TryWaitForStateChangedAsync(ChannelState, Nullable(Of DateTime))
+  fullName: Grpc.Core.Channel.TryWaitForStateChangedAsync(Grpc.Core.ChannelState, System.Nullable<System.DateTime>)
+  fullName.vb: Grpc.Core.Channel.TryWaitForStateChangedAsync(Grpc.Core.ChannelState, System.Nullable(Of System.DateTime))
+  nameWithType: Channel.TryWaitForStateChangedAsync(ChannelState, Nullable<DateTime>)
+  nameWithType.vb: Channel.TryWaitForStateChangedAsync(ChannelState, Nullable(Of DateTime))
+- uid: Grpc.Core.Channel.TryWaitForStateChangedAsync*
+  name: TryWaitForStateChangedAsync
+  href: api/Grpc.Core.Channel.html#Grpc_Core_Channel_TryWaitForStateChangedAsync_
+  commentId: Overload:Grpc.Core.Channel.TryWaitForStateChangedAsync
+  isSpec: "True"
+  fullName: Grpc.Core.Channel.TryWaitForStateChangedAsync
+  nameWithType: Channel.TryWaitForStateChangedAsync
 - uid: Grpc.Core.Channel.WaitForStateChangedAsync(Grpc.Core.ChannelState,System.Nullable{System.DateTime})
 - uid: Grpc.Core.Channel.WaitForStateChangedAsync(Grpc.Core.ChannelState,System.Nullable{System.DateTime})
   name: WaitForStateChangedAsync(ChannelState, Nullable<DateTime>)
   name: WaitForStateChangedAsync(ChannelState, Nullable<DateTime>)
   href: api/Grpc.Core.Channel.html#Grpc_Core_Channel_WaitForStateChangedAsync_Grpc_Core_ChannelState_System_Nullable_System_DateTime__
   href: api/Grpc.Core.Channel.html#Grpc_Core_Channel_WaitForStateChangedAsync_Grpc_Core_ChannelState_System_Nullable_System_DateTime__
@@ -1587,6 +1603,38 @@ references:
   isSpec: "True"
   isSpec: "True"
   fullName: Grpc.Core.ChannelOption.ChannelOption
   fullName: Grpc.Core.ChannelOption.ChannelOption
   nameWithType: ChannelOption.ChannelOption
   nameWithType: ChannelOption.ChannelOption
+- uid: Grpc.Core.ChannelOption.Equals(Grpc.Core.ChannelOption)
+  name: Equals(ChannelOption)
+  href: api/Grpc.Core.ChannelOption.html#Grpc_Core_ChannelOption_Equals_Grpc_Core_ChannelOption_
+  commentId: M:Grpc.Core.ChannelOption.Equals(Grpc.Core.ChannelOption)
+  fullName: Grpc.Core.ChannelOption.Equals(Grpc.Core.ChannelOption)
+  nameWithType: ChannelOption.Equals(ChannelOption)
+- uid: Grpc.Core.ChannelOption.Equals(System.Object)
+  name: Equals(Object)
+  href: api/Grpc.Core.ChannelOption.html#Grpc_Core_ChannelOption_Equals_System_Object_
+  commentId: M:Grpc.Core.ChannelOption.Equals(System.Object)
+  fullName: Grpc.Core.ChannelOption.Equals(System.Object)
+  nameWithType: ChannelOption.Equals(Object)
+- uid: Grpc.Core.ChannelOption.Equals*
+  name: Equals
+  href: api/Grpc.Core.ChannelOption.html#Grpc_Core_ChannelOption_Equals_
+  commentId: Overload:Grpc.Core.ChannelOption.Equals
+  isSpec: "True"
+  fullName: Grpc.Core.ChannelOption.Equals
+  nameWithType: ChannelOption.Equals
+- uid: Grpc.Core.ChannelOption.GetHashCode
+  name: GetHashCode()
+  href: api/Grpc.Core.ChannelOption.html#Grpc_Core_ChannelOption_GetHashCode
+  commentId: M:Grpc.Core.ChannelOption.GetHashCode
+  fullName: Grpc.Core.ChannelOption.GetHashCode()
+  nameWithType: ChannelOption.GetHashCode()
+- uid: Grpc.Core.ChannelOption.GetHashCode*
+  name: GetHashCode
+  href: api/Grpc.Core.ChannelOption.html#Grpc_Core_ChannelOption_GetHashCode_
+  commentId: Overload:Grpc.Core.ChannelOption.GetHashCode
+  isSpec: "True"
+  fullName: Grpc.Core.ChannelOption.GetHashCode
+  nameWithType: ChannelOption.GetHashCode
 - uid: Grpc.Core.ChannelOption.IntValue
 - uid: Grpc.Core.ChannelOption.IntValue
   name: IntValue
   name: IntValue
   href: api/Grpc.Core.ChannelOption.html#Grpc_Core_ChannelOption_IntValue
   href: api/Grpc.Core.ChannelOption.html#Grpc_Core_ChannelOption_IntValue
@@ -1613,6 +1661,32 @@ references:
   isSpec: "True"
   isSpec: "True"
   fullName: Grpc.Core.ChannelOption.Name
   fullName: Grpc.Core.ChannelOption.Name
   nameWithType: ChannelOption.Name
   nameWithType: ChannelOption.Name
+- uid: Grpc.Core.ChannelOption.op_Equality(Grpc.Core.ChannelOption,Grpc.Core.ChannelOption)
+  name: Equality(ChannelOption, ChannelOption)
+  href: api/Grpc.Core.ChannelOption.html#Grpc_Core_ChannelOption_op_Equality_Grpc_Core_ChannelOption_Grpc_Core_ChannelOption_
+  commentId: M:Grpc.Core.ChannelOption.op_Equality(Grpc.Core.ChannelOption,Grpc.Core.ChannelOption)
+  fullName: Grpc.Core.ChannelOption.Equality(Grpc.Core.ChannelOption, Grpc.Core.ChannelOption)
+  nameWithType: ChannelOption.Equality(ChannelOption, ChannelOption)
+- uid: Grpc.Core.ChannelOption.op_Equality*
+  name: Equality
+  href: api/Grpc.Core.ChannelOption.html#Grpc_Core_ChannelOption_op_Equality_
+  commentId: Overload:Grpc.Core.ChannelOption.op_Equality
+  isSpec: "True"
+  fullName: Grpc.Core.ChannelOption.Equality
+  nameWithType: ChannelOption.Equality
+- uid: Grpc.Core.ChannelOption.op_Inequality(Grpc.Core.ChannelOption,Grpc.Core.ChannelOption)
+  name: Inequality(ChannelOption, ChannelOption)
+  href: api/Grpc.Core.ChannelOption.html#Grpc_Core_ChannelOption_op_Inequality_Grpc_Core_ChannelOption_Grpc_Core_ChannelOption_
+  commentId: M:Grpc.Core.ChannelOption.op_Inequality(Grpc.Core.ChannelOption,Grpc.Core.ChannelOption)
+  fullName: Grpc.Core.ChannelOption.Inequality(Grpc.Core.ChannelOption, Grpc.Core.ChannelOption)
+  nameWithType: ChannelOption.Inequality(ChannelOption, ChannelOption)
+- uid: Grpc.Core.ChannelOption.op_Inequality*
+  name: Inequality
+  href: api/Grpc.Core.ChannelOption.html#Grpc_Core_ChannelOption_op_Inequality_
+  commentId: Overload:Grpc.Core.ChannelOption.op_Inequality
+  isSpec: "True"
+  fullName: Grpc.Core.ChannelOption.Inequality
+  nameWithType: ChannelOption.Inequality
 - uid: Grpc.Core.ChannelOption.OptionType
 - uid: Grpc.Core.ChannelOption.OptionType
   name: ChannelOption.OptionType
   name: ChannelOption.OptionType
   href: api/Grpc.Core.ChannelOption.OptionType.html
   href: api/Grpc.Core.ChannelOption.OptionType.html
@@ -2116,6 +2190,38 @@ references:
   fullName.vb: Grpc.Core.DefaultCallInvoker.CreateCall(Of TRequest, TResponse)(Grpc.Core.Method(Of TRequest, TResponse), System.String, Grpc.Core.CallOptions)
   fullName.vb: Grpc.Core.DefaultCallInvoker.CreateCall(Of TRequest, TResponse)(Grpc.Core.Method(Of TRequest, TResponse), System.String, Grpc.Core.CallOptions)
   nameWithType: DefaultCallInvoker.CreateCall<TRequest, TResponse>(Method<TRequest, TResponse>, String, CallOptions)
   nameWithType: DefaultCallInvoker.CreateCall<TRequest, TResponse>(Method<TRequest, TResponse>, String, CallOptions)
   nameWithType.vb: DefaultCallInvoker.CreateCall(Of TRequest, TResponse)(Method(Of TRequest, TResponse), String, CallOptions)
   nameWithType.vb: DefaultCallInvoker.CreateCall(Of TRequest, TResponse)(Method(Of TRequest, TResponse), String, CallOptions)
+- uid: Grpc.Core.DeserializationContext
+  name: DeserializationContext
+  href: api/Grpc.Core.DeserializationContext.html
+  commentId: T:Grpc.Core.DeserializationContext
+  fullName: Grpc.Core.DeserializationContext
+  nameWithType: DeserializationContext
+- uid: Grpc.Core.DeserializationContext.PayloadAsNewBuffer
+  name: PayloadAsNewBuffer()
+  href: api/Grpc.Core.DeserializationContext.html#Grpc_Core_DeserializationContext_PayloadAsNewBuffer
+  commentId: M:Grpc.Core.DeserializationContext.PayloadAsNewBuffer
+  fullName: Grpc.Core.DeserializationContext.PayloadAsNewBuffer()
+  nameWithType: DeserializationContext.PayloadAsNewBuffer()
+- uid: Grpc.Core.DeserializationContext.PayloadAsNewBuffer*
+  name: PayloadAsNewBuffer
+  href: api/Grpc.Core.DeserializationContext.html#Grpc_Core_DeserializationContext_PayloadAsNewBuffer_
+  commentId: Overload:Grpc.Core.DeserializationContext.PayloadAsNewBuffer
+  isSpec: "True"
+  fullName: Grpc.Core.DeserializationContext.PayloadAsNewBuffer
+  nameWithType: DeserializationContext.PayloadAsNewBuffer
+- uid: Grpc.Core.DeserializationContext.PayloadLength
+  name: PayloadLength
+  href: api/Grpc.Core.DeserializationContext.html#Grpc_Core_DeserializationContext_PayloadLength
+  commentId: P:Grpc.Core.DeserializationContext.PayloadLength
+  fullName: Grpc.Core.DeserializationContext.PayloadLength
+  nameWithType: DeserializationContext.PayloadLength
+- uid: Grpc.Core.DeserializationContext.PayloadLength*
+  name: PayloadLength
+  href: api/Grpc.Core.DeserializationContext.html#Grpc_Core_DeserializationContext_PayloadLength_
+  commentId: Overload:Grpc.Core.DeserializationContext.PayloadLength
+  isSpec: "True"
+  fullName: Grpc.Core.DeserializationContext.PayloadLength
+  nameWithType: DeserializationContext.PayloadLength
 - uid: Grpc.Core.DuplexStreamingServerMethod`2
 - uid: Grpc.Core.DuplexStreamingServerMethod`2
   name: DuplexStreamingServerMethod<TRequest, TResponse>
   name: DuplexStreamingServerMethod<TRequest, TResponse>
   href: api/Grpc.Core.DuplexStreamingServerMethod-2.html
   href: api/Grpc.Core.DuplexStreamingServerMethod-2.html
@@ -3462,6 +3568,15 @@ references:
   fullName.vb: Grpc.Core.Marshaller(Of T)
   fullName.vb: Grpc.Core.Marshaller(Of T)
   nameWithType: Marshaller<T>
   nameWithType: Marshaller<T>
   nameWithType.vb: Marshaller(Of T)
   nameWithType.vb: Marshaller(Of T)
+- uid: Grpc.Core.Marshaller`1.#ctor(System.Action{`0,Grpc.Core.SerializationContext},System.Func{Grpc.Core.DeserializationContext,`0})
+  name: Marshaller(Action<T, SerializationContext>, Func<DeserializationContext, T>)
+  href: api/Grpc.Core.Marshaller-1.html#Grpc_Core_Marshaller_1__ctor_System_Action__0_Grpc_Core_SerializationContext__System_Func_Grpc_Core_DeserializationContext__0__
+  commentId: M:Grpc.Core.Marshaller`1.#ctor(System.Action{`0,Grpc.Core.SerializationContext},System.Func{Grpc.Core.DeserializationContext,`0})
+  name.vb: Marshaller(Action(Of T, SerializationContext), Func(Of DeserializationContext, T))
+  fullName: Grpc.Core.Marshaller<T>.Marshaller(System.Action<T, Grpc.Core.SerializationContext>, System.Func<Grpc.Core.DeserializationContext, T>)
+  fullName.vb: Grpc.Core.Marshaller(Of T).Marshaller(System.Action(Of T, Grpc.Core.SerializationContext), System.Func(Of Grpc.Core.DeserializationContext, T))
+  nameWithType: Marshaller<T>.Marshaller(Action<T, SerializationContext>, Func<DeserializationContext, T>)
+  nameWithType.vb: Marshaller(Of T).Marshaller(Action(Of T, SerializationContext), Func(Of DeserializationContext, T))
 - uid: Grpc.Core.Marshaller`1.#ctor(System.Func{`0,System.Byte[]},System.Func{System.Byte[],`0})
 - uid: Grpc.Core.Marshaller`1.#ctor(System.Func{`0,System.Byte[]},System.Func{System.Byte[],`0})
   name: Marshaller(Func<T, Byte[]>, Func<Byte[], T>)
   name: Marshaller(Func<T, Byte[]>, Func<Byte[], T>)
   href: api/Grpc.Core.Marshaller-1.html#Grpc_Core_Marshaller_1__ctor_System_Func__0_System_Byte____System_Func_System_Byte____0__
   href: api/Grpc.Core.Marshaller-1.html#Grpc_Core_Marshaller_1__ctor_System_Func__0_System_Byte____System_Func_System_Byte____0__
@@ -3480,6 +3595,40 @@ references:
   fullName.vb: Grpc.Core.Marshaller(Of T).Marshaller
   fullName.vb: Grpc.Core.Marshaller(Of T).Marshaller
   nameWithType: Marshaller<T>.Marshaller
   nameWithType: Marshaller<T>.Marshaller
   nameWithType.vb: Marshaller(Of T).Marshaller
   nameWithType.vb: Marshaller(Of T).Marshaller
+- uid: Grpc.Core.Marshaller`1.ContextualDeserializer
+  name: ContextualDeserializer
+  href: api/Grpc.Core.Marshaller-1.html#Grpc_Core_Marshaller_1_ContextualDeserializer
+  commentId: P:Grpc.Core.Marshaller`1.ContextualDeserializer
+  fullName: Grpc.Core.Marshaller<T>.ContextualDeserializer
+  fullName.vb: Grpc.Core.Marshaller(Of T).ContextualDeserializer
+  nameWithType: Marshaller<T>.ContextualDeserializer
+  nameWithType.vb: Marshaller(Of T).ContextualDeserializer
+- uid: Grpc.Core.Marshaller`1.ContextualDeserializer*
+  name: ContextualDeserializer
+  href: api/Grpc.Core.Marshaller-1.html#Grpc_Core_Marshaller_1_ContextualDeserializer_
+  commentId: Overload:Grpc.Core.Marshaller`1.ContextualDeserializer
+  isSpec: "True"
+  fullName: Grpc.Core.Marshaller<T>.ContextualDeserializer
+  fullName.vb: Grpc.Core.Marshaller(Of T).ContextualDeserializer
+  nameWithType: Marshaller<T>.ContextualDeserializer
+  nameWithType.vb: Marshaller(Of T).ContextualDeserializer
+- uid: Grpc.Core.Marshaller`1.ContextualSerializer
+  name: ContextualSerializer
+  href: api/Grpc.Core.Marshaller-1.html#Grpc_Core_Marshaller_1_ContextualSerializer
+  commentId: P:Grpc.Core.Marshaller`1.ContextualSerializer
+  fullName: Grpc.Core.Marshaller<T>.ContextualSerializer
+  fullName.vb: Grpc.Core.Marshaller(Of T).ContextualSerializer
+  nameWithType: Marshaller<T>.ContextualSerializer
+  nameWithType.vb: Marshaller(Of T).ContextualSerializer
+- uid: Grpc.Core.Marshaller`1.ContextualSerializer*
+  name: ContextualSerializer
+  href: api/Grpc.Core.Marshaller-1.html#Grpc_Core_Marshaller_1_ContextualSerializer_
+  commentId: Overload:Grpc.Core.Marshaller`1.ContextualSerializer
+  isSpec: "True"
+  fullName: Grpc.Core.Marshaller<T>.ContextualSerializer
+  fullName.vb: Grpc.Core.Marshaller(Of T).ContextualSerializer
+  nameWithType: Marshaller<T>.ContextualSerializer
+  nameWithType.vb: Marshaller(Of T).ContextualSerializer
 - uid: Grpc.Core.Marshaller`1.Deserializer
 - uid: Grpc.Core.Marshaller`1.Deserializer
   name: Deserializer
   name: Deserializer
   href: api/Grpc.Core.Marshaller-1.html#Grpc_Core_Marshaller_1_Deserializer
   href: api/Grpc.Core.Marshaller-1.html#Grpc_Core_Marshaller_1_Deserializer
@@ -3527,6 +3676,15 @@ references:
   isSpec: "True"
   isSpec: "True"
   fullName: Grpc.Core.Marshallers.Create
   fullName: Grpc.Core.Marshallers.Create
   nameWithType: Marshallers.Create
   nameWithType: Marshallers.Create
+- uid: Grpc.Core.Marshallers.Create``1(System.Action{``0,Grpc.Core.SerializationContext},System.Func{Grpc.Core.DeserializationContext,``0})
+  name: Create<T>(Action<T, SerializationContext>, Func<DeserializationContext, T>)
+  href: api/Grpc.Core.Marshallers.html#Grpc_Core_Marshallers_Create__1_System_Action___0_Grpc_Core_SerializationContext__System_Func_Grpc_Core_DeserializationContext___0__
+  commentId: M:Grpc.Core.Marshallers.Create``1(System.Action{``0,Grpc.Core.SerializationContext},System.Func{Grpc.Core.DeserializationContext,``0})
+  name.vb: Create(Of T)(Action(Of T, SerializationContext), Func(Of DeserializationContext, T))
+  fullName: Grpc.Core.Marshallers.Create<T>(System.Action<T, Grpc.Core.SerializationContext>, System.Func<Grpc.Core.DeserializationContext, T>)
+  fullName.vb: Grpc.Core.Marshallers.Create(Of T)(System.Action(Of T, Grpc.Core.SerializationContext), System.Func(Of Grpc.Core.DeserializationContext, T))
+  nameWithType: Marshallers.Create<T>(Action<T, SerializationContext>, Func<DeserializationContext, T>)
+  nameWithType.vb: Marshallers.Create(Of T)(Action(Of T, SerializationContext), Func(Of DeserializationContext, T))
 - uid: Grpc.Core.Marshallers.Create``1(System.Func{``0,System.Byte[]},System.Func{System.Byte[],``0})
 - uid: Grpc.Core.Marshallers.Create``1(System.Func{``0,System.Byte[]},System.Func{System.Byte[],``0})
   name: Create<T>(Func<T, Byte[]>, Func<Byte[], T>)
   name: Create<T>(Func<T, Byte[]>, Func<Byte[], T>)
   href: api/Grpc.Core.Marshallers.html#Grpc_Core_Marshallers_Create__1_System_Func___0_System_Byte____System_Func_System_Byte_____0__
   href: api/Grpc.Core.Marshallers.html#Grpc_Core_Marshallers_Create__1_System_Func___0_System_Byte____System_Func_System_Byte_____0__
@@ -4044,6 +4202,12 @@ references:
   commentId: M:Grpc.Core.RpcException.#ctor(Grpc.Core.Status,Grpc.Core.Metadata)
   commentId: M:Grpc.Core.RpcException.#ctor(Grpc.Core.Status,Grpc.Core.Metadata)
   fullName: Grpc.Core.RpcException.RpcException(Grpc.Core.Status, Grpc.Core.Metadata)
   fullName: Grpc.Core.RpcException.RpcException(Grpc.Core.Status, Grpc.Core.Metadata)
   nameWithType: RpcException.RpcException(Status, Metadata)
   nameWithType: RpcException.RpcException(Status, Metadata)
+- uid: Grpc.Core.RpcException.#ctor(Grpc.Core.Status,Grpc.Core.Metadata,System.String)
+  name: RpcException(Status, Metadata, String)
+  href: api/Grpc.Core.RpcException.html#Grpc_Core_RpcException__ctor_Grpc_Core_Status_Grpc_Core_Metadata_System_String_
+  commentId: M:Grpc.Core.RpcException.#ctor(Grpc.Core.Status,Grpc.Core.Metadata,System.String)
+  fullName: Grpc.Core.RpcException.RpcException(Grpc.Core.Status, Grpc.Core.Metadata, System.String)
+  nameWithType: RpcException.RpcException(Status, Metadata, String)
 - uid: Grpc.Core.RpcException.#ctor(Grpc.Core.Status,System.String)
 - uid: Grpc.Core.RpcException.#ctor(Grpc.Core.Status,System.String)
   name: RpcException(Status, String)
   name: RpcException(Status, String)
   href: api/Grpc.Core.RpcException.html#Grpc_Core_RpcException__ctor_Grpc_Core_Status_System_String_
   href: api/Grpc.Core.RpcException.html#Grpc_Core_RpcException__ctor_Grpc_Core_Status_System_String_
@@ -4096,6 +4260,28 @@ references:
   isSpec: "True"
   isSpec: "True"
   fullName: Grpc.Core.RpcException.Trailers
   fullName: Grpc.Core.RpcException.Trailers
   nameWithType: RpcException.Trailers
   nameWithType: RpcException.Trailers
+- uid: Grpc.Core.SerializationContext
+  name: SerializationContext
+  href: api/Grpc.Core.SerializationContext.html
+  commentId: T:Grpc.Core.SerializationContext
+  fullName: Grpc.Core.SerializationContext
+  nameWithType: SerializationContext
+- uid: Grpc.Core.SerializationContext.Complete(System.Byte[])
+  name: Complete(Byte[])
+  href: api/Grpc.Core.SerializationContext.html#Grpc_Core_SerializationContext_Complete_System_Byte___
+  commentId: M:Grpc.Core.SerializationContext.Complete(System.Byte[])
+  name.vb: Complete(Byte())
+  fullName: Grpc.Core.SerializationContext.Complete(System.Byte[])
+  fullName.vb: Grpc.Core.SerializationContext.Complete(System.Byte())
+  nameWithType: SerializationContext.Complete(Byte[])
+  nameWithType.vb: SerializationContext.Complete(Byte())
+- uid: Grpc.Core.SerializationContext.Complete*
+  name: Complete
+  href: api/Grpc.Core.SerializationContext.html#Grpc_Core_SerializationContext_Complete_
+  commentId: Overload:Grpc.Core.SerializationContext.Complete
+  isSpec: "True"
+  fullName: Grpc.Core.SerializationContext.Complete
+  nameWithType: SerializationContext.Complete
 - uid: Grpc.Core.Server
 - uid: Grpc.Core.Server
   name: Server
   name: Server
   href: api/Grpc.Core.Server.html
   href: api/Grpc.Core.Server.html
@@ -4680,6 +4866,91 @@ references:
   fullName.vb: Grpc.Core.ServerStreamingServerMethod(Of TRequest, TResponse)
   fullName.vb: Grpc.Core.ServerStreamingServerMethod(Of TRequest, TResponse)
   nameWithType: ServerStreamingServerMethod<TRequest, TResponse>
   nameWithType: ServerStreamingServerMethod<TRequest, TResponse>
   nameWithType.vb: ServerStreamingServerMethod(Of TRequest, TResponse)
   nameWithType.vb: ServerStreamingServerMethod(Of TRequest, TResponse)
+- uid: Grpc.Core.ServiceBinderBase
+  name: ServiceBinderBase
+  href: api/Grpc.Core.ServiceBinderBase.html
+  commentId: T:Grpc.Core.ServiceBinderBase
+  fullName: Grpc.Core.ServiceBinderBase
+  nameWithType: ServiceBinderBase
+- uid: Grpc.Core.ServiceBinderBase.AddMethod*
+  name: AddMethod
+  href: api/Grpc.Core.ServiceBinderBase.html#Grpc_Core_ServiceBinderBase_AddMethod_
+  commentId: Overload:Grpc.Core.ServiceBinderBase.AddMethod
+  isSpec: "True"
+  fullName: Grpc.Core.ServiceBinderBase.AddMethod
+  nameWithType: ServiceBinderBase.AddMethod
+- uid: Grpc.Core.ServiceBinderBase.AddMethod``2(Grpc.Core.Method{``0,``1},Grpc.Core.ClientStreamingServerMethod{``0,``1})
+  name: AddMethod<TRequest, TResponse>(Method<TRequest, TResponse>, ClientStreamingServerMethod<TRequest, TResponse>)
+  href: api/Grpc.Core.ServiceBinderBase.html#Grpc_Core_ServiceBinderBase_AddMethod__2_Grpc_Core_Method___0___1__Grpc_Core_ClientStreamingServerMethod___0___1__
+  commentId: M:Grpc.Core.ServiceBinderBase.AddMethod``2(Grpc.Core.Method{``0,``1},Grpc.Core.ClientStreamingServerMethod{``0,``1})
+  name.vb: AddMethod(Of TRequest, TResponse)(Method(Of TRequest, TResponse), ClientStreamingServerMethod(Of TRequest, TResponse))
+  fullName: Grpc.Core.ServiceBinderBase.AddMethod<TRequest, TResponse>(Grpc.Core.Method<TRequest, TResponse>, Grpc.Core.ClientStreamingServerMethod<TRequest, TResponse>)
+  fullName.vb: Grpc.Core.ServiceBinderBase.AddMethod(Of TRequest, TResponse)(Grpc.Core.Method(Of TRequest, TResponse), Grpc.Core.ClientStreamingServerMethod(Of TRequest, TResponse))
+  nameWithType: ServiceBinderBase.AddMethod<TRequest, TResponse>(Method<TRequest, TResponse>, ClientStreamingServerMethod<TRequest, TResponse>)
+  nameWithType.vb: ServiceBinderBase.AddMethod(Of TRequest, TResponse)(Method(Of TRequest, TResponse), ClientStreamingServerMethod(Of TRequest, TResponse))
+- uid: Grpc.Core.ServiceBinderBase.AddMethod``2(Grpc.Core.Method{``0,``1},Grpc.Core.DuplexStreamingServerMethod{``0,``1})
+  name: AddMethod<TRequest, TResponse>(Method<TRequest, TResponse>, DuplexStreamingServerMethod<TRequest, TResponse>)
+  href: api/Grpc.Core.ServiceBinderBase.html#Grpc_Core_ServiceBinderBase_AddMethod__2_Grpc_Core_Method___0___1__Grpc_Core_DuplexStreamingServerMethod___0___1__
+  commentId: M:Grpc.Core.ServiceBinderBase.AddMethod``2(Grpc.Core.Method{``0,``1},Grpc.Core.DuplexStreamingServerMethod{``0,``1})
+  name.vb: AddMethod(Of TRequest, TResponse)(Method(Of TRequest, TResponse), DuplexStreamingServerMethod(Of TRequest, TResponse))
+  fullName: Grpc.Core.ServiceBinderBase.AddMethod<TRequest, TResponse>(Grpc.Core.Method<TRequest, TResponse>, Grpc.Core.DuplexStreamingServerMethod<TRequest, TResponse>)
+  fullName.vb: Grpc.Core.ServiceBinderBase.AddMethod(Of TRequest, TResponse)(Grpc.Core.Method(Of TRequest, TResponse), Grpc.Core.DuplexStreamingServerMethod(Of TRequest, TResponse))
+  nameWithType: ServiceBinderBase.AddMethod<TRequest, TResponse>(Method<TRequest, TResponse>, DuplexStreamingServerMethod<TRequest, TResponse>)
+  nameWithType.vb: ServiceBinderBase.AddMethod(Of TRequest, TResponse)(Method(Of TRequest, TResponse), DuplexStreamingServerMethod(Of TRequest, TResponse))
+- uid: Grpc.Core.ServiceBinderBase.AddMethod``2(Grpc.Core.Method{``0,``1},Grpc.Core.ServerStreamingServerMethod{``0,``1})
+  name: AddMethod<TRequest, TResponse>(Method<TRequest, TResponse>, ServerStreamingServerMethod<TRequest, TResponse>)
+  href: api/Grpc.Core.ServiceBinderBase.html#Grpc_Core_ServiceBinderBase_AddMethod__2_Grpc_Core_Method___0___1__Grpc_Core_ServerStreamingServerMethod___0___1__
+  commentId: M:Grpc.Core.ServiceBinderBase.AddMethod``2(Grpc.Core.Method{``0,``1},Grpc.Core.ServerStreamingServerMethod{``0,``1})
+  name.vb: AddMethod(Of TRequest, TResponse)(Method(Of TRequest, TResponse), ServerStreamingServerMethod(Of TRequest, TResponse))
+  fullName: Grpc.Core.ServiceBinderBase.AddMethod<TRequest, TResponse>(Grpc.Core.Method<TRequest, TResponse>, Grpc.Core.ServerStreamingServerMethod<TRequest, TResponse>)
+  fullName.vb: Grpc.Core.ServiceBinderBase.AddMethod(Of TRequest, TResponse)(Grpc.Core.Method(Of TRequest, TResponse), Grpc.Core.ServerStreamingServerMethod(Of TRequest, TResponse))
+  nameWithType: ServiceBinderBase.AddMethod<TRequest, TResponse>(Method<TRequest, TResponse>, ServerStreamingServerMethod<TRequest, TResponse>)
+  nameWithType.vb: ServiceBinderBase.AddMethod(Of TRequest, TResponse)(Method(Of TRequest, TResponse), ServerStreamingServerMethod(Of TRequest, TResponse))
+- uid: Grpc.Core.ServiceBinderBase.AddMethod``2(Grpc.Core.Method{``0,``1},Grpc.Core.UnaryServerMethod{``0,``1})
+  name: AddMethod<TRequest, TResponse>(Method<TRequest, TResponse>, UnaryServerMethod<TRequest, TResponse>)
+  href: api/Grpc.Core.ServiceBinderBase.html#Grpc_Core_ServiceBinderBase_AddMethod__2_Grpc_Core_Method___0___1__Grpc_Core_UnaryServerMethod___0___1__
+  commentId: M:Grpc.Core.ServiceBinderBase.AddMethod``2(Grpc.Core.Method{``0,``1},Grpc.Core.UnaryServerMethod{``0,``1})
+  name.vb: AddMethod(Of TRequest, TResponse)(Method(Of TRequest, TResponse), UnaryServerMethod(Of TRequest, TResponse))
+  fullName: Grpc.Core.ServiceBinderBase.AddMethod<TRequest, TResponse>(Grpc.Core.Method<TRequest, TResponse>, Grpc.Core.UnaryServerMethod<TRequest, TResponse>)
+  fullName.vb: Grpc.Core.ServiceBinderBase.AddMethod(Of TRequest, TResponse)(Grpc.Core.Method(Of TRequest, TResponse), Grpc.Core.UnaryServerMethod(Of TRequest, TResponse))
+  nameWithType: ServiceBinderBase.AddMethod<TRequest, TResponse>(Method<TRequest, TResponse>, UnaryServerMethod<TRequest, TResponse>)
+  nameWithType.vb: ServiceBinderBase.AddMethod(Of TRequest, TResponse)(Method(Of TRequest, TResponse), UnaryServerMethod(Of TRequest, TResponse))
+- uid: Grpc.Core.SslClientCertificateRequestType
+  name: SslClientCertificateRequestType
+  href: api/Grpc.Core.SslClientCertificateRequestType.html
+  commentId: T:Grpc.Core.SslClientCertificateRequestType
+  fullName: Grpc.Core.SslClientCertificateRequestType
+  nameWithType: SslClientCertificateRequestType
+- uid: Grpc.Core.SslClientCertificateRequestType.DontRequest
+  name: DontRequest
+  href: api/Grpc.Core.SslClientCertificateRequestType.html#Grpc_Core_SslClientCertificateRequestType_DontRequest
+  commentId: F:Grpc.Core.SslClientCertificateRequestType.DontRequest
+  fullName: Grpc.Core.SslClientCertificateRequestType.DontRequest
+  nameWithType: SslClientCertificateRequestType.DontRequest
+- uid: Grpc.Core.SslClientCertificateRequestType.RequestAndRequireAndVerify
+  name: RequestAndRequireAndVerify
+  href: api/Grpc.Core.SslClientCertificateRequestType.html#Grpc_Core_SslClientCertificateRequestType_RequestAndRequireAndVerify
+  commentId: F:Grpc.Core.SslClientCertificateRequestType.RequestAndRequireAndVerify
+  fullName: Grpc.Core.SslClientCertificateRequestType.RequestAndRequireAndVerify
+  nameWithType: SslClientCertificateRequestType.RequestAndRequireAndVerify
+- uid: Grpc.Core.SslClientCertificateRequestType.RequestAndRequireButDontVerify
+  name: RequestAndRequireButDontVerify
+  href: api/Grpc.Core.SslClientCertificateRequestType.html#Grpc_Core_SslClientCertificateRequestType_RequestAndRequireButDontVerify
+  commentId: F:Grpc.Core.SslClientCertificateRequestType.RequestAndRequireButDontVerify
+  fullName: Grpc.Core.SslClientCertificateRequestType.RequestAndRequireButDontVerify
+  nameWithType: SslClientCertificateRequestType.RequestAndRequireButDontVerify
+- uid: Grpc.Core.SslClientCertificateRequestType.RequestAndVerify
+  name: RequestAndVerify
+  href: api/Grpc.Core.SslClientCertificateRequestType.html#Grpc_Core_SslClientCertificateRequestType_RequestAndVerify
+  commentId: F:Grpc.Core.SslClientCertificateRequestType.RequestAndVerify
+  fullName: Grpc.Core.SslClientCertificateRequestType.RequestAndVerify
+  nameWithType: SslClientCertificateRequestType.RequestAndVerify
+- uid: Grpc.Core.SslClientCertificateRequestType.RequestButDontVerify
+  name: RequestButDontVerify
+  href: api/Grpc.Core.SslClientCertificateRequestType.html#Grpc_Core_SslClientCertificateRequestType_RequestButDontVerify
+  commentId: F:Grpc.Core.SslClientCertificateRequestType.RequestButDontVerify
+  fullName: Grpc.Core.SslClientCertificateRequestType.RequestButDontVerify
+  nameWithType: SslClientCertificateRequestType.RequestButDontVerify
 - uid: Grpc.Core.SslCredentials
 - uid: Grpc.Core.SslCredentials
   name: SslCredentials
   name: SslCredentials
   href: api/Grpc.Core.SslCredentials.html
   href: api/Grpc.Core.SslCredentials.html
@@ -4752,6 +5023,15 @@ references:
   fullName.vb: Grpc.Core.SslServerCredentials.SslServerCredentials(System.Collections.Generic.IEnumerable(Of Grpc.Core.KeyCertificatePair))
   fullName.vb: Grpc.Core.SslServerCredentials.SslServerCredentials(System.Collections.Generic.IEnumerable(Of Grpc.Core.KeyCertificatePair))
   nameWithType: SslServerCredentials.SslServerCredentials(IEnumerable<KeyCertificatePair>)
   nameWithType: SslServerCredentials.SslServerCredentials(IEnumerable<KeyCertificatePair>)
   nameWithType.vb: SslServerCredentials.SslServerCredentials(IEnumerable(Of KeyCertificatePair))
   nameWithType.vb: SslServerCredentials.SslServerCredentials(IEnumerable(Of KeyCertificatePair))
+- uid: Grpc.Core.SslServerCredentials.#ctor(System.Collections.Generic.IEnumerable{Grpc.Core.KeyCertificatePair},System.String,Grpc.Core.SslClientCertificateRequestType)
+  name: SslServerCredentials(IEnumerable<KeyCertificatePair>, String, SslClientCertificateRequestType)
+  href: api/Grpc.Core.SslServerCredentials.html#Grpc_Core_SslServerCredentials__ctor_System_Collections_Generic_IEnumerable_Grpc_Core_KeyCertificatePair__System_String_Grpc_Core_SslClientCertificateRequestType_
+  commentId: M:Grpc.Core.SslServerCredentials.#ctor(System.Collections.Generic.IEnumerable{Grpc.Core.KeyCertificatePair},System.String,Grpc.Core.SslClientCertificateRequestType)
+  name.vb: SslServerCredentials(IEnumerable(Of KeyCertificatePair), String, SslClientCertificateRequestType)
+  fullName: Grpc.Core.SslServerCredentials.SslServerCredentials(System.Collections.Generic.IEnumerable<Grpc.Core.KeyCertificatePair>, System.String, Grpc.Core.SslClientCertificateRequestType)
+  fullName.vb: Grpc.Core.SslServerCredentials.SslServerCredentials(System.Collections.Generic.IEnumerable(Of Grpc.Core.KeyCertificatePair), System.String, Grpc.Core.SslClientCertificateRequestType)
+  nameWithType: SslServerCredentials.SslServerCredentials(IEnumerable<KeyCertificatePair>, String, SslClientCertificateRequestType)
+  nameWithType.vb: SslServerCredentials.SslServerCredentials(IEnumerable(Of KeyCertificatePair), String, SslClientCertificateRequestType)
 - uid: Grpc.Core.SslServerCredentials.#ctor(System.Collections.Generic.IEnumerable{Grpc.Core.KeyCertificatePair},System.String,System.Boolean)
 - uid: Grpc.Core.SslServerCredentials.#ctor(System.Collections.Generic.IEnumerable{Grpc.Core.KeyCertificatePair},System.String,System.Boolean)
   name: SslServerCredentials(IEnumerable<KeyCertificatePair>, String, Boolean)
   name: SslServerCredentials(IEnumerable<KeyCertificatePair>, String, Boolean)
   href: api/Grpc.Core.SslServerCredentials.html#Grpc_Core_SslServerCredentials__ctor_System_Collections_Generic_IEnumerable_Grpc_Core_KeyCertificatePair__System_String_System_Boolean_
   href: api/Grpc.Core.SslServerCredentials.html#Grpc_Core_SslServerCredentials__ctor_System_Collections_Generic_IEnumerable_Grpc_Core_KeyCertificatePair__System_String_System_Boolean_
@@ -4768,6 +5048,19 @@ references:
   isSpec: "True"
   isSpec: "True"
   fullName: Grpc.Core.SslServerCredentials.SslServerCredentials
   fullName: Grpc.Core.SslServerCredentials.SslServerCredentials
   nameWithType: SslServerCredentials.SslServerCredentials
   nameWithType: SslServerCredentials.SslServerCredentials
+- uid: Grpc.Core.SslServerCredentials.ClientCertificateRequest
+  name: ClientCertificateRequest
+  href: api/Grpc.Core.SslServerCredentials.html#Grpc_Core_SslServerCredentials_ClientCertificateRequest
+  commentId: P:Grpc.Core.SslServerCredentials.ClientCertificateRequest
+  fullName: Grpc.Core.SslServerCredentials.ClientCertificateRequest
+  nameWithType: SslServerCredentials.ClientCertificateRequest
+- uid: Grpc.Core.SslServerCredentials.ClientCertificateRequest*
+  name: ClientCertificateRequest
+  href: api/Grpc.Core.SslServerCredentials.html#Grpc_Core_SslServerCredentials_ClientCertificateRequest_
+  commentId: Overload:Grpc.Core.SslServerCredentials.ClientCertificateRequest
+  isSpec: "True"
+  fullName: Grpc.Core.SslServerCredentials.ClientCertificateRequest
+  nameWithType: SslServerCredentials.ClientCertificateRequest
 - uid: Grpc.Core.SslServerCredentials.ForceClientAuthentication
 - uid: Grpc.Core.SslServerCredentials.ForceClientAuthentication
   name: ForceClientAuthentication
   name: ForceClientAuthentication
   href: api/Grpc.Core.SslServerCredentials.html#Grpc_Core_SslServerCredentials_ForceClientAuthentication
   href: api/Grpc.Core.SslServerCredentials.html#Grpc_Core_SslServerCredentials_ForceClientAuthentication
@@ -5360,6 +5653,12 @@ references:
   commentId: T:Grpc.Health.V1.Health
   commentId: T:Grpc.Health.V1.Health
   fullName: Grpc.Health.V1.Health
   fullName: Grpc.Health.V1.Health
   nameWithType: Health
   nameWithType: Health
+- uid: Grpc.Health.V1.Health.BindService(Grpc.Core.ServiceBinderBase,Grpc.Health.V1.Health.HealthBase)
+  name: BindService(ServiceBinderBase, Health.HealthBase)
+  href: api/Grpc.Health.V1.Health.html#Grpc_Health_V1_Health_BindService_Grpc_Core_ServiceBinderBase_Grpc_Health_V1_Health_HealthBase_
+  commentId: M:Grpc.Health.V1.Health.BindService(Grpc.Core.ServiceBinderBase,Grpc.Health.V1.Health.HealthBase)
+  fullName: Grpc.Health.V1.Health.BindService(Grpc.Core.ServiceBinderBase, Grpc.Health.V1.Health.HealthBase)
+  nameWithType: Health.BindService(ServiceBinderBase, Health.HealthBase)
 - uid: Grpc.Health.V1.Health.BindService(Grpc.Health.V1.Health.HealthBase)
 - uid: Grpc.Health.V1.Health.BindService(Grpc.Health.V1.Health.HealthBase)
   name: BindService(Health.HealthBase)
   name: BindService(Health.HealthBase)
   href: api/Grpc.Health.V1.Health.html#Grpc_Health_V1_Health_BindService_Grpc_Health_V1_Health_HealthBase_
   href: api/Grpc.Health.V1.Health.html#Grpc_Health_V1_Health_BindService_Grpc_Health_V1_Health_HealthBase_
@@ -5405,6 +5704,22 @@ references:
   isSpec: "True"
   isSpec: "True"
   fullName: Grpc.Health.V1.Health.HealthBase.Check
   fullName: Grpc.Health.V1.Health.HealthBase.Check
   nameWithType: Health.HealthBase.Check
   nameWithType: Health.HealthBase.Check
+- uid: Grpc.Health.V1.Health.HealthBase.Watch(Grpc.Health.V1.HealthCheckRequest,Grpc.Core.IServerStreamWriter{Grpc.Health.V1.HealthCheckResponse},Grpc.Core.ServerCallContext)
+  name: Watch(HealthCheckRequest, IServerStreamWriter<HealthCheckResponse>, ServerCallContext)
+  href: api/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_
+  commentId: M:Grpc.Health.V1.Health.HealthBase.Watch(Grpc.Health.V1.HealthCheckRequest,Grpc.Core.IServerStreamWriter{Grpc.Health.V1.HealthCheckResponse},Grpc.Core.ServerCallContext)
+  name.vb: Watch(HealthCheckRequest, IServerStreamWriter(Of HealthCheckResponse), ServerCallContext)
+  fullName: Grpc.Health.V1.Health.HealthBase.Watch(Grpc.Health.V1.HealthCheckRequest, Grpc.Core.IServerStreamWriter<Grpc.Health.V1.HealthCheckResponse>, Grpc.Core.ServerCallContext)
+  fullName.vb: Grpc.Health.V1.Health.HealthBase.Watch(Grpc.Health.V1.HealthCheckRequest, Grpc.Core.IServerStreamWriter(Of Grpc.Health.V1.HealthCheckResponse), Grpc.Core.ServerCallContext)
+  nameWithType: Health.HealthBase.Watch(HealthCheckRequest, IServerStreamWriter<HealthCheckResponse>, ServerCallContext)
+  nameWithType.vb: Health.HealthBase.Watch(HealthCheckRequest, IServerStreamWriter(Of HealthCheckResponse), ServerCallContext)
+- uid: Grpc.Health.V1.Health.HealthBase.Watch*
+  name: Watch
+  href: api/Grpc.Health.V1.Health.HealthBase.html#Grpc_Health_V1_Health_HealthBase_Watch_
+  commentId: Overload:Grpc.Health.V1.Health.HealthBase.Watch
+  isSpec: "True"
+  fullName: Grpc.Health.V1.Health.HealthBase.Watch
+  nameWithType: Health.HealthBase.Watch
 - uid: Grpc.Health.V1.Health.HealthClient
 - uid: Grpc.Health.V1.Health.HealthClient
   name: Health.HealthClient
   name: Health.HealthClient
   href: api/Grpc.Health.V1.Health.HealthClient.html
   href: api/Grpc.Health.V1.Health.HealthClient.html
@@ -5499,6 +5814,28 @@ references:
   isSpec: "True"
   isSpec: "True"
   fullName: Grpc.Health.V1.Health.HealthClient.NewInstance
   fullName: Grpc.Health.V1.Health.HealthClient.NewInstance
   nameWithType: Health.HealthClient.NewInstance
   nameWithType: Health.HealthClient.NewInstance
+- uid: Grpc.Health.V1.Health.HealthClient.Watch(Grpc.Health.V1.HealthCheckRequest,Grpc.Core.CallOptions)
+  name: Watch(HealthCheckRequest, CallOptions)
+  href: api/Grpc.Health.V1.Health.HealthClient.html#Grpc_Health_V1_Health_HealthClient_Watch_Grpc_Health_V1_HealthCheckRequest_Grpc_Core_CallOptions_
+  commentId: M:Grpc.Health.V1.Health.HealthClient.Watch(Grpc.Health.V1.HealthCheckRequest,Grpc.Core.CallOptions)
+  fullName: Grpc.Health.V1.Health.HealthClient.Watch(Grpc.Health.V1.HealthCheckRequest, Grpc.Core.CallOptions)
+  nameWithType: Health.HealthClient.Watch(HealthCheckRequest, CallOptions)
+- uid: Grpc.Health.V1.Health.HealthClient.Watch(Grpc.Health.V1.HealthCheckRequest,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken)
+  name: Watch(HealthCheckRequest, Metadata, Nullable<DateTime>, CancellationToken)
+  href: api/Grpc.Health.V1.Health.HealthClient.html#Grpc_Health_V1_Health_HealthClient_Watch_Grpc_Health_V1_HealthCheckRequest_Grpc_Core_Metadata_System_Nullable_System_DateTime__System_Threading_CancellationToken_
+  commentId: M:Grpc.Health.V1.Health.HealthClient.Watch(Grpc.Health.V1.HealthCheckRequest,Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken)
+  name.vb: Watch(HealthCheckRequest, Metadata, Nullable(Of DateTime), CancellationToken)
+  fullName: Grpc.Health.V1.Health.HealthClient.Watch(Grpc.Health.V1.HealthCheckRequest, Grpc.Core.Metadata, System.Nullable<System.DateTime>, System.Threading.CancellationToken)
+  fullName.vb: Grpc.Health.V1.Health.HealthClient.Watch(Grpc.Health.V1.HealthCheckRequest, Grpc.Core.Metadata, System.Nullable(Of System.DateTime), System.Threading.CancellationToken)
+  nameWithType: Health.HealthClient.Watch(HealthCheckRequest, Metadata, Nullable<DateTime>, CancellationToken)
+  nameWithType.vb: Health.HealthClient.Watch(HealthCheckRequest, Metadata, Nullable(Of DateTime), CancellationToken)
+- uid: Grpc.Health.V1.Health.HealthClient.Watch*
+  name: Watch
+  href: api/Grpc.Health.V1.Health.HealthClient.html#Grpc_Health_V1_Health_HealthClient_Watch_
+  commentId: Overload:Grpc.Health.V1.Health.HealthClient.Watch
+  isSpec: "True"
+  fullName: Grpc.Health.V1.Health.HealthClient.Watch
+  nameWithType: Health.HealthClient.Watch
 - uid: Grpc.Health.V1.HealthCheckRequest
 - uid: Grpc.Health.V1.HealthCheckRequest
   name: HealthCheckRequest
   name: HealthCheckRequest
   href: api/Grpc.Health.V1.HealthCheckRequest.html
   href: api/Grpc.Health.V1.HealthCheckRequest.html
@@ -5850,6 +6187,12 @@ references:
   commentId: F:Grpc.Health.V1.HealthCheckResponse.Types.ServingStatus.NotServing
   commentId: F:Grpc.Health.V1.HealthCheckResponse.Types.ServingStatus.NotServing
   fullName: Grpc.Health.V1.HealthCheckResponse.Types.ServingStatus.NotServing
   fullName: Grpc.Health.V1.HealthCheckResponse.Types.ServingStatus.NotServing
   nameWithType: HealthCheckResponse.Types.ServingStatus.NotServing
   nameWithType: HealthCheckResponse.Types.ServingStatus.NotServing
+- uid: Grpc.Health.V1.HealthCheckResponse.Types.ServingStatus.ServiceUnknown
+  name: ServiceUnknown
+  href: api/Grpc.Health.V1.HealthCheckResponse.Types.ServingStatus.html#Grpc_Health_V1_HealthCheckResponse_Types_ServingStatus_ServiceUnknown
+  commentId: F:Grpc.Health.V1.HealthCheckResponse.Types.ServingStatus.ServiceUnknown
+  fullName: Grpc.Health.V1.HealthCheckResponse.Types.ServingStatus.ServiceUnknown
+  nameWithType: HealthCheckResponse.Types.ServingStatus.ServiceUnknown
 - uid: Grpc.Health.V1.HealthCheckResponse.Types.ServingStatus.Serving
 - uid: Grpc.Health.V1.HealthCheckResponse.Types.ServingStatus.Serving
   name: Serving
   name: Serving
   href: api/Grpc.Health.V1.HealthCheckResponse.Types.ServingStatus.html#Grpc_Health_V1_HealthCheckResponse_Types_ServingStatus_Serving
   href: api/Grpc.Health.V1.HealthCheckResponse.Types.ServingStatus.html#Grpc_Health_V1_HealthCheckResponse_Types_ServingStatus_Serving

Неке датотеке нису приказане због велике количине промена