| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326 | <!DOCTYPE html><!--[if IE]><![endif]--><html>    <head>    <meta charset="utf-8">    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">    <title>Class CallInvokerExtensions   | gRPC C# </title>    <meta name="viewport" content="width=device-width">    <meta name="title" content="Class CallInvokerExtensions   | 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.Interceptors.CallInvokerExtensions">      <h1 id="Grpc_Core_Interceptors_CallInvokerExtensions" data-uid="Grpc.Core.Interceptors.CallInvokerExtensions" class="text-break">Class CallInvokerExtensions  </h1>  <div class="markdown level0 summary"><p>Extends the CallInvoker class to provide the interceptor facility on the client side.</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">CallInvokerExtensions</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.Interceptors.html">Grpc.Core.Interceptors</a></h6>  <h6><strong>Assembly</strong>: Grpc.Core.Api.dll</h6>  <h5 id="Grpc_Core_Interceptors_CallInvokerExtensions_syntax">Syntax</h5>  <div class="codewrapper">    <pre><code class="lang-csharp hljs">public static class CallInvokerExtensions</code></pre>  </div>  <h3 id="methods">Methods  </h3>  <a id="Grpc_Core_Interceptors_CallInvokerExtensions_Intercept_" data-uid="Grpc.Core.Interceptors.CallInvokerExtensions.Intercept*"></a>  <h4 id="Grpc_Core_Interceptors_CallInvokerExtensions_Intercept_Grpc_Core_CallInvoker_Grpc_Core_Interceptors_Interceptor_" data-uid="Grpc.Core.Interceptors.CallInvokerExtensions.Intercept(Grpc.Core.CallInvoker,Grpc.Core.Interceptors.Interceptor)">Intercept(CallInvoker, Interceptor)</h4>  <div class="markdown level1 summary"><p>Returns a <a class="xref" href="Grpc.Core.CallInvoker.html">CallInvoker</a> instance that interceptsthe invoker with the given interceptor.</p></div>  <div class="markdown level1 conceptual"></div>  <h5 class="decalaration">Declaration</h5>  <div class="codewrapper">    <pre><code class="lang-csharp hljs">public static CallInvoker Intercept(this CallInvoker invoker, Interceptor interceptor)</code></pre>  </div>  <h5 class="parameters">Parameters</h5>  <table class="table table-bordered table-striped table-condensed">    <thead>      <tr>        <th>Type</th>        <th>Name</th>        <th>Description</th>      </tr>    </thead>    <tbody>      <tr>        <td><a class="xref" href="Grpc.Core.CallInvoker.html">CallInvoker</a></td>        <td><span class="parametername">invoker</span></td>        <td><p>The underlying invoker to intercept.</p></td>      </tr>      <tr>        <td><a class="xref" href="Grpc.Core.Interceptors.Interceptor.html">Interceptor</a></td>        <td><span class="parametername">interceptor</span></td>        <td><p>The interceptor to intercept calls to the invoker with.</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.CallInvoker.html">CallInvoker</a></td>        <td></td>      </tr>    </tbody>  </table>  <h5 id="Grpc_Core_Interceptors_CallInvokerExtensions_Intercept_Grpc_Core_CallInvoker_Grpc_Core_Interceptors_Interceptor__remarks">Remarks</h5>  <div class="markdown level1 remarks"><p>Multiple interceptors can be added on top of each other by calling"invoker.Intercept(a, b, c)".  The order of invocation will be "a", "b", and then "c".Interceptors can be later added to an existing intercepted CallInvoker, effectivelybuilding a chain like "invoker.Intercept(c).Intercept(b).Intercept(a)".  Note thatin this case, the last interceptor added will be the first to take control.</p></div>  <a id="Grpc_Core_Interceptors_CallInvokerExtensions_Intercept_" data-uid="Grpc.Core.Interceptors.CallInvokerExtensions.Intercept*"></a>  <h4 id="Grpc_Core_Interceptors_CallInvokerExtensions_Intercept_Grpc_Core_CallInvoker_Grpc_Core_Interceptors_Interceptor___" data-uid="Grpc.Core.Interceptors.CallInvokerExtensions.Intercept(Grpc.Core.CallInvoker,Grpc.Core.Interceptors.Interceptor[])">Intercept(CallInvoker, Interceptor[])</h4>  <div class="markdown level1 summary"><p>Returns a <a class="xref" href="Grpc.Core.CallInvoker.html">CallInvoker</a> instance that interceptsthe invoker with the given interceptors.</p></div>  <div class="markdown level1 conceptual"></div>  <h5 class="decalaration">Declaration</h5>  <div class="codewrapper">    <pre><code class="lang-csharp hljs">public static CallInvoker Intercept(this CallInvoker invoker, params Interceptor[] interceptors)</code></pre>  </div>  <h5 class="parameters">Parameters</h5>  <table class="table table-bordered table-striped table-condensed">    <thead>      <tr>        <th>Type</th>        <th>Name</th>        <th>Description</th>      </tr>    </thead>    <tbody>      <tr>        <td><a class="xref" href="Grpc.Core.CallInvoker.html">CallInvoker</a></td>        <td><span class="parametername">invoker</span></td>        <td><p>The channel to intercept.</p></td>      </tr>      <tr>        <td><a class="xref" href="Grpc.Core.Interceptors.Interceptor.html">Interceptor</a>[]</td>        <td><span class="parametername">interceptors</span></td>        <td><p>An array of interceptors to intercept the calls to the invoker with.Control is passed to the interceptors in the order specified.</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.CallInvoker.html">CallInvoker</a></td>        <td></td>      </tr>    </tbody>  </table>  <h5 id="Grpc_Core_Interceptors_CallInvokerExtensions_Intercept_Grpc_Core_CallInvoker_Grpc_Core_Interceptors_Interceptor____remarks">Remarks</h5>  <div class="markdown level1 remarks"><p>Multiple interceptors can be added on top of each other by calling"invoker.Intercept(a, b, c)".  The order of invocation will be "a", "b", and then "c".Interceptors can be later added to an existing intercepted CallInvoker, effectivelybuilding a chain like "invoker.Intercept(c).Intercept(b).Intercept(a)".  Note thatin this case, the last interceptor added will be the first to take control.</p></div>  <a id="Grpc_Core_Interceptors_CallInvokerExtensions_Intercept_" data-uid="Grpc.Core.Interceptors.CallInvokerExtensions.Intercept*"></a>  <h4 id="Grpc_Core_Interceptors_CallInvokerExtensions_Intercept_Grpc_Core_CallInvoker_System_Func_Grpc_Core_Metadata_Grpc_Core_Metadata__" data-uid="Grpc.Core.Interceptors.CallInvokerExtensions.Intercept(Grpc.Core.CallInvoker,System.Func{Grpc.Core.Metadata,Grpc.Core.Metadata})">Intercept(CallInvoker, Func<Metadata, Metadata>)</h4>  <div class="markdown level1 summary"><p>Returns a <a class="xref" href="Grpc.Core.CallInvoker.html">CallInvoker</a> instance that interceptsthe invoker with the given interceptor.</p></div>  <div class="markdown level1 conceptual"></div>  <h5 class="decalaration">Declaration</h5>  <div class="codewrapper">    <pre><code class="lang-csharp hljs">public static CallInvoker Intercept(this CallInvoker invoker, Func<Metadata, Metadata> interceptor)</code></pre>  </div>  <h5 class="parameters">Parameters</h5>  <table class="table table-bordered table-striped table-condensed">    <thead>      <tr>        <th>Type</th>        <th>Name</th>        <th>Description</th>      </tr>    </thead>    <tbody>      <tr>        <td><a class="xref" href="Grpc.Core.CallInvoker.html">CallInvoker</a></td>        <td><span class="parametername">invoker</span></td>        <td><p>The underlying invoker to intercept.</p></td>      </tr>      <tr>        <td><span class="xref">System.Func</span><<a class="xref" href="Grpc.Core.Metadata.html">Metadata</a>, <a class="xref" href="Grpc.Core.Metadata.html">Metadata</a>></td>        <td><span class="parametername">interceptor</span></td>        <td><p>An interceptor delegate that takes the request metadata to be sent with an outgoing calland returns a <a class="xref" href="Grpc.Core.Metadata.html">Metadata</a> instance that will replace the existinginvocation metadata.</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.CallInvoker.html">CallInvoker</a></td>        <td></td>      </tr>    </tbody>  </table>  <h5 id="Grpc_Core_Interceptors_CallInvokerExtensions_Intercept_Grpc_Core_CallInvoker_System_Func_Grpc_Core_Metadata_Grpc_Core_Metadata___remarks">Remarks</h5>  <div class="markdown level1 remarks"><p>Multiple interceptors can be added on top of each other bybuilding a chain like "invoker.Intercept(c).Intercept(b).Intercept(a)".  Note thatin this case, the last interceptor added will be the first to take control.</p></div></article>          </div>                    <div class="hidden-sm col-md-2" role="complementary">            <div class="sideaffix">              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->              </nav>            </div>          </div>        </div>      </div>            <footer>        <div class="grad-bottom"></div>        <div class="footer">          <div class="container">            <span class="pull-right">              <a href="#top">Back to top</a>            </span>                        <span>Generated by <strong>DocFX</strong></span>          </div>        </div>      </footer>    </div>        <script type="text/javascript" src="../styles/docfx.vendor.js"></script>    <script type="text/javascript" src="../styles/docfx.js"></script>    <script type="text/javascript" src="../styles/main.js"></script>  </body></html>
 |