Grpc.Core.Interceptors.Interceptor.html 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906
  1. <!DOCTYPE html>
  2. <!--[if IE]><![endif]-->
  3. <html>
  4. <head>
  5. <meta charset="utf-8">
  6. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  7. <title>Class Interceptor
  8. | gRPC C# </title>
  9. <meta name="viewport" content="width=device-width">
  10. <meta name="title" content="Class Interceptor
  11. | gRPC C# ">
  12. <meta name="generator" content="docfx 2.36.0.0">
  13. <link rel="shortcut icon" href="../favicon.ico">
  14. <link rel="stylesheet" href="../styles/docfx.vendor.css">
  15. <link rel="stylesheet" href="../styles/docfx.css">
  16. <link rel="stylesheet" href="../styles/main.css">
  17. <meta property="docfx:navrel" content="../toc.html">
  18. <meta property="docfx:tocrel" content="toc.html">
  19. <meta property="docfx:rel" content="../">
  20. <script type="text/javascript"> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-60127042-1', 'auto'); ga('send', 'pageview'); </script> </head>
  21. <body data-spy="scroll" data-target="#affix" data-offset="120">
  22. <div id="wrapper">
  23. <header>
  24. <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
  25. <div class="container">
  26. <div class="navbar-header">
  27. <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
  28. <span class="sr-only">Toggle navigation</span>
  29. <span class="icon-bar"></span>
  30. <span class="icon-bar"></span>
  31. <span class="icon-bar"></span>
  32. </button>
  33. <a class="navbar-brand" href="../index.html">
  34. <img id="logo" class="svg" src="../logo.svg" alt="">
  35. </a>
  36. </div>
  37. <div class="collapse navbar-collapse" id="navbar">
  38. <form class="navbar-form navbar-right" role="search" id="search">
  39. <div class="form-group">
  40. <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
  41. </div>
  42. </form>
  43. </div>
  44. </div>
  45. </nav>
  46. <div class="subnav navbar navbar-default">
  47. <div class="container hide-when-search" id="breadcrumb">
  48. <ul class="breadcrumb">
  49. <li></li>
  50. </ul>
  51. </div>
  52. </div>
  53. </header>
  54. <div class="container body-content">
  55. <div id="search-results">
  56. <div class="search-list"></div>
  57. <div class="sr-items">
  58. <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
  59. </div>
  60. <ul id="pagination"></ul>
  61. </div>
  62. </div>
  63. <div role="main" class="container body-content hide-when-search">
  64. <div class="sidenav hide-when-search">
  65. <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
  66. <div class="sidetoggle collapse" id="sidetoggle">
  67. <div id="sidetoc"></div>
  68. </div>
  69. </div>
  70. <div class="article row grid-right">
  71. <div class="col-md-10">
  72. <article class="content wrap" id="_content" data-uid="Grpc.Core.Interceptors.Interceptor">
  73. <h1 id="Grpc_Core_Interceptors_Interceptor" data-uid="Grpc.Core.Interceptors.Interceptor" class="text-break">Class Interceptor
  74. </h1>
  75. <div class="markdown level0 summary"><p>Serves as the base class for gRPC interceptors.
  76. This is an EXPERIMENTAL API.</p>
  77. </div>
  78. <div class="markdown level0 conceptual"></div>
  79. <div class="inheritance">
  80. <h5>Inheritance</h5>
  81. <div class="level0"><span class="xref">System.Object</span></div>
  82. <div class="level1"><span class="xref">Interceptor</span></div>
  83. </div>
  84. <div class="inheritedMembers">
  85. <h5>Inherited Members</h5>
  86. <div>
  87. <span class="xref">System.Object.ToString()</span>
  88. </div>
  89. <div>
  90. <span class="xref">System.Object.Equals(System.Object)</span>
  91. </div>
  92. <div>
  93. <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
  94. </div>
  95. <div>
  96. <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
  97. </div>
  98. <div>
  99. <span class="xref">System.Object.GetHashCode()</span>
  100. </div>
  101. <div>
  102. <span class="xref">System.Object.GetType()</span>
  103. </div>
  104. <div>
  105. <span class="xref">System.Object.MemberwiseClone()</span>
  106. </div>
  107. </div>
  108. <h6><strong>Namespace</strong>: <a class="xref" href="Grpc.Core.Interceptors.html">Grpc.Core.Interceptors</a></h6>
  109. <h6><strong>Assembly</strong>: Grpc.Core.dll</h6>
  110. <h5 id="Grpc_Core_Interceptors_Interceptor_syntax">Syntax</h5>
  111. <div class="codewrapper">
  112. <pre><code class="lang-csharp hljs">public abstract class Interceptor</code></pre>
  113. </div>
  114. <h3 id="methods">Methods
  115. </h3>
  116. <a id="Grpc_Core_Interceptors_Interceptor_AsyncClientStreamingCall_" data-uid="Grpc.Core.Interceptors.Interceptor.AsyncClientStreamingCall*"></a>
  117. <h4 id="Grpc_Core_Interceptors_Interceptor_AsyncClientStreamingCall__2_Grpc_Core_Interceptors_ClientInterceptorContext___0___1__Grpc_Core_Interceptors_Interceptor_AsyncClientStreamingCallContinuation___0___1__" data-uid="Grpc.Core.Interceptors.Interceptor.AsyncClientStreamingCall``2(Grpc.Core.Interceptors.ClientInterceptorContext{``0,``1},Grpc.Core.Interceptors.Interceptor.AsyncClientStreamingCallContinuation{``0,``1})">AsyncClientStreamingCall&lt;TRequest, TResponse&gt;(ClientInterceptorContext&lt;TRequest, TResponse&gt;, Interceptor.AsyncClientStreamingCallContinuation&lt;TRequest, TResponse&gt;)</h4>
  118. <div class="markdown level1 summary"><p>Intercepts an asynchronous invocation of a client streaming call.</p>
  119. </div>
  120. <div class="markdown level1 conceptual"></div>
  121. <h5 class="decalaration">Declaration</h5>
  122. <div class="codewrapper">
  123. <pre><code class="lang-csharp hljs">public virtual AsyncClientStreamingCall&lt;TRequest, TResponse&gt; AsyncClientStreamingCall&lt;TRequest, TResponse&gt;(ClientInterceptorContext&lt;TRequest, TResponse&gt; context, Interceptor.AsyncClientStreamingCallContinuation&lt;TRequest, TResponse&gt; continuation)
  124. where TRequest : class where TResponse : class</code></pre>
  125. </div>
  126. <h5 class="parameters">Parameters</h5>
  127. <table class="table table-bordered table-striped table-condensed">
  128. <thead>
  129. <tr>
  130. <th>Type</th>
  131. <th>Name</th>
  132. <th>Description</th>
  133. </tr>
  134. </thead>
  135. <tbody>
  136. <tr>
  137. <td><a class="xref" href="Grpc.Core.Interceptors.ClientInterceptorContext-2.html">ClientInterceptorContext</a>&lt;TRequest, TResponse&gt;</td>
  138. <td><span class="parametername">context</span></td>
  139. <td><p>The <a class="xref" href="Grpc.Core.Interceptors.ClientInterceptorContext-2.html">ClientInterceptorContext&lt;TRequest, TResponse&gt;</a>
  140. associated with the current invocation.</p>
  141. </td>
  142. </tr>
  143. <tr>
  144. <td><a class="xref" href="Grpc.Core.Interceptors.Interceptor.AsyncClientStreamingCallContinuation-2.html">Interceptor.AsyncClientStreamingCallContinuation</a>&lt;TRequest, TResponse&gt;</td>
  145. <td><span class="parametername">continuation</span></td>
  146. <td><p>The callback that continues the invocation process.
  147. This can be invoked zero or more times by the interceptor.
  148. The interceptor can invoke the continuation passing the given
  149. context argument, or substitute as it sees fit.</p>
  150. </td>
  151. </tr>
  152. </tbody>
  153. </table>
  154. <h5 class="returns">Returns</h5>
  155. <table class="table table-bordered table-striped table-condensed">
  156. <thead>
  157. <tr>
  158. <th>Type</th>
  159. <th>Description</th>
  160. </tr>
  161. </thead>
  162. <tbody>
  163. <tr>
  164. <td><a class="xref" href="Grpc.Core.AsyncClientStreamingCall-2.html">AsyncClientStreamingCall</a>&lt;TRequest, TResponse&gt;</td>
  165. <td><p>An instance of <a class="xref" href="Grpc.Core.AsyncClientStreamingCall-2.html">AsyncClientStreamingCall&lt;TRequest, TResponse&gt;</a>
  166. representing an asynchronous client-streaming invocation.
  167. The interceptor can simply return the return value of the
  168. continuation delegate passed to it intact, or construct its
  169. own substitute as it sees fit.</p>
  170. </td>
  171. </tr>
  172. </tbody>
  173. </table>
  174. <h5 class="typeParameters">Type Parameters</h5>
  175. <table class="table table-bordered table-striped table-condensed">
  176. <thead>
  177. <tr>
  178. <th>Name</th>
  179. <th>Description</th>
  180. </tr>
  181. </thead>
  182. <tbody>
  183. <tr>
  184. <td><span class="parametername">TRequest</span></td>
  185. <td></td>
  186. </tr>
  187. <tr>
  188. <td><span class="parametername">TResponse</span></td>
  189. <td></td>
  190. </tr>
  191. </tbody>
  192. </table>
  193. <a id="Grpc_Core_Interceptors_Interceptor_AsyncDuplexStreamingCall_" data-uid="Grpc.Core.Interceptors.Interceptor.AsyncDuplexStreamingCall*"></a>
  194. <h4 id="Grpc_Core_Interceptors_Interceptor_AsyncDuplexStreamingCall__2_Grpc_Core_Interceptors_ClientInterceptorContext___0___1__Grpc_Core_Interceptors_Interceptor_AsyncDuplexStreamingCallContinuation___0___1__" data-uid="Grpc.Core.Interceptors.Interceptor.AsyncDuplexStreamingCall``2(Grpc.Core.Interceptors.ClientInterceptorContext{``0,``1},Grpc.Core.Interceptors.Interceptor.AsyncDuplexStreamingCallContinuation{``0,``1})">AsyncDuplexStreamingCall&lt;TRequest, TResponse&gt;(ClientInterceptorContext&lt;TRequest, TResponse&gt;, Interceptor.AsyncDuplexStreamingCallContinuation&lt;TRequest, TResponse&gt;)</h4>
  195. <div class="markdown level1 summary"><p>Intercepts an asynchronous invocation of a duplex streaming call.</p>
  196. </div>
  197. <div class="markdown level1 conceptual"></div>
  198. <h5 class="decalaration">Declaration</h5>
  199. <div class="codewrapper">
  200. <pre><code class="lang-csharp hljs">public virtual AsyncDuplexStreamingCall&lt;TRequest, TResponse&gt; AsyncDuplexStreamingCall&lt;TRequest, TResponse&gt;(ClientInterceptorContext&lt;TRequest, TResponse&gt; context, Interceptor.AsyncDuplexStreamingCallContinuation&lt;TRequest, TResponse&gt; continuation)
  201. where TRequest : class where TResponse : class</code></pre>
  202. </div>
  203. <h5 class="parameters">Parameters</h5>
  204. <table class="table table-bordered table-striped table-condensed">
  205. <thead>
  206. <tr>
  207. <th>Type</th>
  208. <th>Name</th>
  209. <th>Description</th>
  210. </tr>
  211. </thead>
  212. <tbody>
  213. <tr>
  214. <td><a class="xref" href="Grpc.Core.Interceptors.ClientInterceptorContext-2.html">ClientInterceptorContext</a>&lt;TRequest, TResponse&gt;</td>
  215. <td><span class="parametername">context</span></td>
  216. <td><p>The <a class="xref" href="Grpc.Core.Interceptors.ClientInterceptorContext-2.html">ClientInterceptorContext&lt;TRequest, TResponse&gt;</a>
  217. associated with the current invocation.</p>
  218. </td>
  219. </tr>
  220. <tr>
  221. <td><a class="xref" href="Grpc.Core.Interceptors.Interceptor.AsyncDuplexStreamingCallContinuation-2.html">Interceptor.AsyncDuplexStreamingCallContinuation</a>&lt;TRequest, TResponse&gt;</td>
  222. <td><span class="parametername">continuation</span></td>
  223. <td><p>The callback that continues the invocation process.
  224. This can be invoked zero or more times by the interceptor.
  225. The interceptor can invoke the continuation passing the given
  226. context argument, or substitute as it sees fit.</p>
  227. </td>
  228. </tr>
  229. </tbody>
  230. </table>
  231. <h5 class="returns">Returns</h5>
  232. <table class="table table-bordered table-striped table-condensed">
  233. <thead>
  234. <tr>
  235. <th>Type</th>
  236. <th>Description</th>
  237. </tr>
  238. </thead>
  239. <tbody>
  240. <tr>
  241. <td><a class="xref" href="Grpc.Core.AsyncDuplexStreamingCall-2.html">AsyncDuplexStreamingCall</a>&lt;TRequest, TResponse&gt;</td>
  242. <td><p>An instance of <a class="xref" href="Grpc.Core.AsyncDuplexStreamingCall-2.html">AsyncDuplexStreamingCall&lt;TRequest, TResponse&gt;</a>
  243. representing an asynchronous duplex-streaming invocation.
  244. The interceptor can simply return the return value of the
  245. continuation delegate passed to it intact, or construct its
  246. own substitute as it sees fit.</p>
  247. </td>
  248. </tr>
  249. </tbody>
  250. </table>
  251. <h5 class="typeParameters">Type Parameters</h5>
  252. <table class="table table-bordered table-striped table-condensed">
  253. <thead>
  254. <tr>
  255. <th>Name</th>
  256. <th>Description</th>
  257. </tr>
  258. </thead>
  259. <tbody>
  260. <tr>
  261. <td><span class="parametername">TRequest</span></td>
  262. <td></td>
  263. </tr>
  264. <tr>
  265. <td><span class="parametername">TResponse</span></td>
  266. <td></td>
  267. </tr>
  268. </tbody>
  269. </table>
  270. <a id="Grpc_Core_Interceptors_Interceptor_AsyncServerStreamingCall_" data-uid="Grpc.Core.Interceptors.Interceptor.AsyncServerStreamingCall*"></a>
  271. <h4 id="Grpc_Core_Interceptors_Interceptor_AsyncServerStreamingCall__2___0_Grpc_Core_Interceptors_ClientInterceptorContext___0___1__Grpc_Core_Interceptors_Interceptor_AsyncServerStreamingCallContinuation___0___1__" data-uid="Grpc.Core.Interceptors.Interceptor.AsyncServerStreamingCall``2(``0,Grpc.Core.Interceptors.ClientInterceptorContext{``0,``1},Grpc.Core.Interceptors.Interceptor.AsyncServerStreamingCallContinuation{``0,``1})">AsyncServerStreamingCall&lt;TRequest, TResponse&gt;(TRequest, ClientInterceptorContext&lt;TRequest, TResponse&gt;, Interceptor.AsyncServerStreamingCallContinuation&lt;TRequest, TResponse&gt;)</h4>
  272. <div class="markdown level1 summary"><p>Intercepts an asynchronous invocation of a streaming remote call.</p>
  273. </div>
  274. <div class="markdown level1 conceptual"></div>
  275. <h5 class="decalaration">Declaration</h5>
  276. <div class="codewrapper">
  277. <pre><code class="lang-csharp hljs">public virtual AsyncServerStreamingCall&lt;TResponse&gt; AsyncServerStreamingCall&lt;TRequest, TResponse&gt;(TRequest request, ClientInterceptorContext&lt;TRequest, TResponse&gt; context, Interceptor.AsyncServerStreamingCallContinuation&lt;TRequest, TResponse&gt; continuation)
  278. where TRequest : class where TResponse : class</code></pre>
  279. </div>
  280. <h5 class="parameters">Parameters</h5>
  281. <table class="table table-bordered table-striped table-condensed">
  282. <thead>
  283. <tr>
  284. <th>Type</th>
  285. <th>Name</th>
  286. <th>Description</th>
  287. </tr>
  288. </thead>
  289. <tbody>
  290. <tr>
  291. <td><span class="xref">TRequest</span></td>
  292. <td><span class="parametername">request</span></td>
  293. <td><p>The request message of the invocation.</p>
  294. </td>
  295. </tr>
  296. <tr>
  297. <td><a class="xref" href="Grpc.Core.Interceptors.ClientInterceptorContext-2.html">ClientInterceptorContext</a>&lt;TRequest, TResponse&gt;</td>
  298. <td><span class="parametername">context</span></td>
  299. <td><p>The <a class="xref" href="Grpc.Core.Interceptors.ClientInterceptorContext-2.html">ClientInterceptorContext&lt;TRequest, TResponse&gt;</a>
  300. associated with the current invocation.</p>
  301. </td>
  302. </tr>
  303. <tr>
  304. <td><a class="xref" href="Grpc.Core.Interceptors.Interceptor.AsyncServerStreamingCallContinuation-2.html">Interceptor.AsyncServerStreamingCallContinuation</a>&lt;TRequest, TResponse&gt;</td>
  305. <td><span class="parametername">continuation</span></td>
  306. <td><p>The callback that continues the invocation process.
  307. This can be invoked zero or more times by the interceptor.
  308. The interceptor can invoke the continuation passing the given
  309. request value and context arguments, or substitute them as it sees fit.</p>
  310. </td>
  311. </tr>
  312. </tbody>
  313. </table>
  314. <h5 class="returns">Returns</h5>
  315. <table class="table table-bordered table-striped table-condensed">
  316. <thead>
  317. <tr>
  318. <th>Type</th>
  319. <th>Description</th>
  320. </tr>
  321. </thead>
  322. <tbody>
  323. <tr>
  324. <td><a class="xref" href="Grpc.Core.AsyncServerStreamingCall-1.html">AsyncServerStreamingCall</a>&lt;TResponse&gt;</td>
  325. <td><p>An instance of <a class="xref" href="Grpc.Core.AsyncServerStreamingCall-1.html">AsyncServerStreamingCall&lt;TResponse&gt;</a>
  326. representing an asynchronous server-streaming invocation.
  327. The interceptor can simply return the return value of the
  328. continuation delegate passed to it intact, or construct its
  329. own substitute as it sees fit.</p>
  330. </td>
  331. </tr>
  332. </tbody>
  333. </table>
  334. <h5 class="typeParameters">Type Parameters</h5>
  335. <table class="table table-bordered table-striped table-condensed">
  336. <thead>
  337. <tr>
  338. <th>Name</th>
  339. <th>Description</th>
  340. </tr>
  341. </thead>
  342. <tbody>
  343. <tr>
  344. <td><span class="parametername">TRequest</span></td>
  345. <td></td>
  346. </tr>
  347. <tr>
  348. <td><span class="parametername">TResponse</span></td>
  349. <td></td>
  350. </tr>
  351. </tbody>
  352. </table>
  353. <a id="Grpc_Core_Interceptors_Interceptor_AsyncUnaryCall_" data-uid="Grpc.Core.Interceptors.Interceptor.AsyncUnaryCall*"></a>
  354. <h4 id="Grpc_Core_Interceptors_Interceptor_AsyncUnaryCall__2___0_Grpc_Core_Interceptors_ClientInterceptorContext___0___1__Grpc_Core_Interceptors_Interceptor_AsyncUnaryCallContinuation___0___1__" data-uid="Grpc.Core.Interceptors.Interceptor.AsyncUnaryCall``2(``0,Grpc.Core.Interceptors.ClientInterceptorContext{``0,``1},Grpc.Core.Interceptors.Interceptor.AsyncUnaryCallContinuation{``0,``1})">AsyncUnaryCall&lt;TRequest, TResponse&gt;(TRequest, ClientInterceptorContext&lt;TRequest, TResponse&gt;, Interceptor.AsyncUnaryCallContinuation&lt;TRequest, TResponse&gt;)</h4>
  355. <div class="markdown level1 summary"><p>Intercepts an asynchronous invocation of a simple remote call.</p>
  356. </div>
  357. <div class="markdown level1 conceptual"></div>
  358. <h5 class="decalaration">Declaration</h5>
  359. <div class="codewrapper">
  360. <pre><code class="lang-csharp hljs">public virtual AsyncUnaryCall&lt;TResponse&gt; AsyncUnaryCall&lt;TRequest, TResponse&gt;(TRequest request, ClientInterceptorContext&lt;TRequest, TResponse&gt; context, Interceptor.AsyncUnaryCallContinuation&lt;TRequest, TResponse&gt; continuation)
  361. where TRequest : class where TResponse : class</code></pre>
  362. </div>
  363. <h5 class="parameters">Parameters</h5>
  364. <table class="table table-bordered table-striped table-condensed">
  365. <thead>
  366. <tr>
  367. <th>Type</th>
  368. <th>Name</th>
  369. <th>Description</th>
  370. </tr>
  371. </thead>
  372. <tbody>
  373. <tr>
  374. <td><span class="xref">TRequest</span></td>
  375. <td><span class="parametername">request</span></td>
  376. <td><p>The request message of the invocation.</p>
  377. </td>
  378. </tr>
  379. <tr>
  380. <td><a class="xref" href="Grpc.Core.Interceptors.ClientInterceptorContext-2.html">ClientInterceptorContext</a>&lt;TRequest, TResponse&gt;</td>
  381. <td><span class="parametername">context</span></td>
  382. <td><p>The <a class="xref" href="Grpc.Core.Interceptors.ClientInterceptorContext-2.html">ClientInterceptorContext&lt;TRequest, TResponse&gt;</a>
  383. associated with the current invocation.</p>
  384. </td>
  385. </tr>
  386. <tr>
  387. <td><a class="xref" href="Grpc.Core.Interceptors.Interceptor.AsyncUnaryCallContinuation-2.html">Interceptor.AsyncUnaryCallContinuation</a>&lt;TRequest, TResponse&gt;</td>
  388. <td><span class="parametername">continuation</span></td>
  389. <td><p>The callback that continues the invocation process.
  390. This can be invoked zero or more times by the interceptor.
  391. The interceptor can invoke the continuation passing the given
  392. request value and context arguments, or substitute them as it sees fit.</p>
  393. </td>
  394. </tr>
  395. </tbody>
  396. </table>
  397. <h5 class="returns">Returns</h5>
  398. <table class="table table-bordered table-striped table-condensed">
  399. <thead>
  400. <tr>
  401. <th>Type</th>
  402. <th>Description</th>
  403. </tr>
  404. </thead>
  405. <tbody>
  406. <tr>
  407. <td><a class="xref" href="Grpc.Core.AsyncUnaryCall-1.html">AsyncUnaryCall</a>&lt;TResponse&gt;</td>
  408. <td><p>An instance of <a class="xref" href="Grpc.Core.AsyncUnaryCall-1.html">AsyncUnaryCall&lt;TResponse&gt;</a>
  409. representing an asynchronous unary invocation.
  410. The interceptor can simply return the return value of the
  411. continuation delegate passed to it intact, or construct its
  412. own substitute as it sees fit.</p>
  413. </td>
  414. </tr>
  415. </tbody>
  416. </table>
  417. <h5 class="typeParameters">Type Parameters</h5>
  418. <table class="table table-bordered table-striped table-condensed">
  419. <thead>
  420. <tr>
  421. <th>Name</th>
  422. <th>Description</th>
  423. </tr>
  424. </thead>
  425. <tbody>
  426. <tr>
  427. <td><span class="parametername">TRequest</span></td>
  428. <td></td>
  429. </tr>
  430. <tr>
  431. <td><span class="parametername">TResponse</span></td>
  432. <td></td>
  433. </tr>
  434. </tbody>
  435. </table>
  436. <a id="Grpc_Core_Interceptors_Interceptor_BlockingUnaryCall_" data-uid="Grpc.Core.Interceptors.Interceptor.BlockingUnaryCall*"></a>
  437. <h4 id="Grpc_Core_Interceptors_Interceptor_BlockingUnaryCall__2___0_Grpc_Core_Interceptors_ClientInterceptorContext___0___1__Grpc_Core_Interceptors_Interceptor_BlockingUnaryCallContinuation___0___1__" data-uid="Grpc.Core.Interceptors.Interceptor.BlockingUnaryCall``2(``0,Grpc.Core.Interceptors.ClientInterceptorContext{``0,``1},Grpc.Core.Interceptors.Interceptor.BlockingUnaryCallContinuation{``0,``1})">BlockingUnaryCall&lt;TRequest, TResponse&gt;(TRequest, ClientInterceptorContext&lt;TRequest, TResponse&gt;, Interceptor.BlockingUnaryCallContinuation&lt;TRequest, TResponse&gt;)</h4>
  438. <div class="markdown level1 summary"><p>Intercepts a blocking invocation of a simple remote call.</p>
  439. </div>
  440. <div class="markdown level1 conceptual"></div>
  441. <h5 class="decalaration">Declaration</h5>
  442. <div class="codewrapper">
  443. <pre><code class="lang-csharp hljs">public virtual TResponse BlockingUnaryCall&lt;TRequest, TResponse&gt;(TRequest request, ClientInterceptorContext&lt;TRequest, TResponse&gt; context, Interceptor.BlockingUnaryCallContinuation&lt;TRequest, TResponse&gt; continuation)
  444. where TRequest : class where TResponse : class</code></pre>
  445. </div>
  446. <h5 class="parameters">Parameters</h5>
  447. <table class="table table-bordered table-striped table-condensed">
  448. <thead>
  449. <tr>
  450. <th>Type</th>
  451. <th>Name</th>
  452. <th>Description</th>
  453. </tr>
  454. </thead>
  455. <tbody>
  456. <tr>
  457. <td><span class="xref">TRequest</span></td>
  458. <td><span class="parametername">request</span></td>
  459. <td><p>The request message of the invocation.</p>
  460. </td>
  461. </tr>
  462. <tr>
  463. <td><a class="xref" href="Grpc.Core.Interceptors.ClientInterceptorContext-2.html">ClientInterceptorContext</a>&lt;TRequest, TResponse&gt;</td>
  464. <td><span class="parametername">context</span></td>
  465. <td><p>The <a class="xref" href="Grpc.Core.Interceptors.ClientInterceptorContext-2.html">ClientInterceptorContext&lt;TRequest, TResponse&gt;</a>
  466. associated with the current invocation.</p>
  467. </td>
  468. </tr>
  469. <tr>
  470. <td><a class="xref" href="Grpc.Core.Interceptors.Interceptor.BlockingUnaryCallContinuation-2.html">Interceptor.BlockingUnaryCallContinuation</a>&lt;TRequest, TResponse&gt;</td>
  471. <td><span class="parametername">continuation</span></td>
  472. <td><p>The callback that continues the invocation process.
  473. This can be invoked zero or more times by the interceptor.
  474. The interceptor can invoke the continuation passing the given
  475. request value and context arguments, or substitute them as it sees fit.</p>
  476. </td>
  477. </tr>
  478. </tbody>
  479. </table>
  480. <h5 class="returns">Returns</h5>
  481. <table class="table table-bordered table-striped table-condensed">
  482. <thead>
  483. <tr>
  484. <th>Type</th>
  485. <th>Description</th>
  486. </tr>
  487. </thead>
  488. <tbody>
  489. <tr>
  490. <td><span class="xref">TResponse</span></td>
  491. <td><p>The response message of the current invocation.
  492. The interceptor can simply return the return value of the
  493. continuation delegate passed to it intact, or an arbitrary
  494. value as it sees fit.</p>
  495. </td>
  496. </tr>
  497. </tbody>
  498. </table>
  499. <h5 class="typeParameters">Type Parameters</h5>
  500. <table class="table table-bordered table-striped table-condensed">
  501. <thead>
  502. <tr>
  503. <th>Name</th>
  504. <th>Description</th>
  505. </tr>
  506. </thead>
  507. <tbody>
  508. <tr>
  509. <td><span class="parametername">TRequest</span></td>
  510. <td></td>
  511. </tr>
  512. <tr>
  513. <td><span class="parametername">TResponse</span></td>
  514. <td></td>
  515. </tr>
  516. </tbody>
  517. </table>
  518. <a id="Grpc_Core_Interceptors_Interceptor_ClientStreamingServerHandler_" data-uid="Grpc.Core.Interceptors.Interceptor.ClientStreamingServerHandler*"></a>
  519. <h4 id="Grpc_Core_Interceptors_Interceptor_ClientStreamingServerHandler__2_Grpc_Core_IAsyncStreamReader___0__Grpc_Core_ServerCallContext_Grpc_Core_ClientStreamingServerMethod___0___1__" data-uid="Grpc.Core.Interceptors.Interceptor.ClientStreamingServerHandler``2(Grpc.Core.IAsyncStreamReader{``0},Grpc.Core.ServerCallContext,Grpc.Core.ClientStreamingServerMethod{``0,``1})">ClientStreamingServerHandler&lt;TRequest, TResponse&gt;(IAsyncStreamReader&lt;TRequest&gt;, ServerCallContext, ClientStreamingServerMethod&lt;TRequest, TResponse&gt;)</h4>
  520. <div class="markdown level1 summary"><p>Server-side handler for intercepting client streaming call.</p>
  521. </div>
  522. <div class="markdown level1 conceptual"></div>
  523. <h5 class="decalaration">Declaration</h5>
  524. <div class="codewrapper">
  525. <pre><code class="lang-csharp hljs">public virtual Task&lt;TResponse&gt; ClientStreamingServerHandler&lt;TRequest, TResponse&gt;(IAsyncStreamReader&lt;TRequest&gt; requestStream, ServerCallContext context, ClientStreamingServerMethod&lt;TRequest, TResponse&gt; continuation)
  526. where TRequest : class where TResponse : class</code></pre>
  527. </div>
  528. <h5 class="parameters">Parameters</h5>
  529. <table class="table table-bordered table-striped table-condensed">
  530. <thead>
  531. <tr>
  532. <th>Type</th>
  533. <th>Name</th>
  534. <th>Description</th>
  535. </tr>
  536. </thead>
  537. <tbody>
  538. <tr>
  539. <td><a class="xref" href="Grpc.Core.IAsyncStreamReader-1.html">IAsyncStreamReader</a>&lt;TRequest&gt;</td>
  540. <td><span class="parametername">requestStream</span></td>
  541. <td><p>The request stream of the incoming invocation.</p>
  542. </td>
  543. </tr>
  544. <tr>
  545. <td><a class="xref" href="Grpc.Core.ServerCallContext.html">ServerCallContext</a></td>
  546. <td><span class="parametername">context</span></td>
  547. <td><p>An instance of <a class="xref" href="Grpc.Core.ServerCallContext.html">ServerCallContext</a> representing
  548. the context of the invocation.</p>
  549. </td>
  550. </tr>
  551. <tr>
  552. <td><a class="xref" href="Grpc.Core.ClientStreamingServerMethod-2.html">ClientStreamingServerMethod</a>&lt;TRequest, TResponse&gt;</td>
  553. <td><span class="parametername">continuation</span></td>
  554. <td><p>A delegate that asynchronously proceeds with the invocation, calling
  555. the next interceptor in the chain, or the service request handler,
  556. in case of the last interceptor and return the response value of
  557. the RPC. The interceptor can choose to call it zero or more times
  558. at its discretion.</p>
  559. </td>
  560. </tr>
  561. </tbody>
  562. </table>
  563. <h5 class="returns">Returns</h5>
  564. <table class="table table-bordered table-striped table-condensed">
  565. <thead>
  566. <tr>
  567. <th>Type</th>
  568. <th>Description</th>
  569. </tr>
  570. </thead>
  571. <tbody>
  572. <tr>
  573. <td><span class="xref">System.Threading.Tasks.Task</span>&lt;TResponse&gt;</td>
  574. <td><p>A future representing the response value of the RPC. The interceptor
  575. can simply return the return value from the continuation intact,
  576. or an arbitrary response value as it sees fit. The interceptor has
  577. the ability to wrap or substitute the request stream when calling
  578. the continuation.</p>
  579. </td>
  580. </tr>
  581. </tbody>
  582. </table>
  583. <h5 class="typeParameters">Type Parameters</h5>
  584. <table class="table table-bordered table-striped table-condensed">
  585. <thead>
  586. <tr>
  587. <th>Name</th>
  588. <th>Description</th>
  589. </tr>
  590. </thead>
  591. <tbody>
  592. <tr>
  593. <td><span class="parametername">TRequest</span></td>
  594. <td><p>Request message type for this method.</p>
  595. </td>
  596. </tr>
  597. <tr>
  598. <td><span class="parametername">TResponse</span></td>
  599. <td><p>Response message type for this method.</p>
  600. </td>
  601. </tr>
  602. </tbody>
  603. </table>
  604. <a id="Grpc_Core_Interceptors_Interceptor_DuplexStreamingServerHandler_" data-uid="Grpc.Core.Interceptors.Interceptor.DuplexStreamingServerHandler*"></a>
  605. <h4 id="Grpc_Core_Interceptors_Interceptor_DuplexStreamingServerHandler__2_Grpc_Core_IAsyncStreamReader___0__Grpc_Core_IServerStreamWriter___1__Grpc_Core_ServerCallContext_Grpc_Core_DuplexStreamingServerMethod___0___1__" data-uid="Grpc.Core.Interceptors.Interceptor.DuplexStreamingServerHandler``2(Grpc.Core.IAsyncStreamReader{``0},Grpc.Core.IServerStreamWriter{``1},Grpc.Core.ServerCallContext,Grpc.Core.DuplexStreamingServerMethod{``0,``1})">DuplexStreamingServerHandler&lt;TRequest, TResponse&gt;(IAsyncStreamReader&lt;TRequest&gt;, IServerStreamWriter&lt;TResponse&gt;, ServerCallContext, DuplexStreamingServerMethod&lt;TRequest, TResponse&gt;)</h4>
  606. <div class="markdown level1 summary"><p>Server-side handler for intercepting bidirectional streaming calls.</p>
  607. </div>
  608. <div class="markdown level1 conceptual"></div>
  609. <h5 class="decalaration">Declaration</h5>
  610. <div class="codewrapper">
  611. <pre><code class="lang-csharp hljs">public virtual Task DuplexStreamingServerHandler&lt;TRequest, TResponse&gt;(IAsyncStreamReader&lt;TRequest&gt; requestStream, IServerStreamWriter&lt;TResponse&gt; responseStream, ServerCallContext context, DuplexStreamingServerMethod&lt;TRequest, TResponse&gt; continuation)
  612. where TRequest : class where TResponse : class</code></pre>
  613. </div>
  614. <h5 class="parameters">Parameters</h5>
  615. <table class="table table-bordered table-striped table-condensed">
  616. <thead>
  617. <tr>
  618. <th>Type</th>
  619. <th>Name</th>
  620. <th>Description</th>
  621. </tr>
  622. </thead>
  623. <tbody>
  624. <tr>
  625. <td><a class="xref" href="Grpc.Core.IAsyncStreamReader-1.html">IAsyncStreamReader</a>&lt;TRequest&gt;</td>
  626. <td><span class="parametername">requestStream</span></td>
  627. <td><p>The request stream of the incoming invocation.</p>
  628. </td>
  629. </tr>
  630. <tr>
  631. <td><a class="xref" href="Grpc.Core.IServerStreamWriter-1.html">IServerStreamWriter</a>&lt;TResponse&gt;</td>
  632. <td><span class="parametername">responseStream</span></td>
  633. <td><p>The response stream of the incoming invocation.</p>
  634. </td>
  635. </tr>
  636. <tr>
  637. <td><a class="xref" href="Grpc.Core.ServerCallContext.html">ServerCallContext</a></td>
  638. <td><span class="parametername">context</span></td>
  639. <td><p>An instance of <a class="xref" href="Grpc.Core.ServerCallContext.html">ServerCallContext</a> representing
  640. the context of the invocation.</p>
  641. </td>
  642. </tr>
  643. <tr>
  644. <td><a class="xref" href="Grpc.Core.DuplexStreamingServerMethod-2.html">DuplexStreamingServerMethod</a>&lt;TRequest, TResponse&gt;</td>
  645. <td><span class="parametername">continuation</span></td>
  646. <td><p>A delegate that asynchronously proceeds with the invocation, calling
  647. the next interceptor in the chain, or the service request handler,
  648. in case of the last interceptor and the interceptor can choose to
  649. call it zero or more times at its discretion. The interceptor has
  650. the ability to wrap or substitute the request and response streams
  651. when calling the continuation.</p>
  652. </td>
  653. </tr>
  654. </tbody>
  655. </table>
  656. <h5 class="returns">Returns</h5>
  657. <table class="table table-bordered table-striped table-condensed">
  658. <thead>
  659. <tr>
  660. <th>Type</th>
  661. <th>Description</th>
  662. </tr>
  663. </thead>
  664. <tbody>
  665. <tr>
  666. <td><span class="xref">System.Threading.Tasks.Task</span></td>
  667. <td></td>
  668. </tr>
  669. </tbody>
  670. </table>
  671. <h5 class="typeParameters">Type Parameters</h5>
  672. <table class="table table-bordered table-striped table-condensed">
  673. <thead>
  674. <tr>
  675. <th>Name</th>
  676. <th>Description</th>
  677. </tr>
  678. </thead>
  679. <tbody>
  680. <tr>
  681. <td><span class="parametername">TRequest</span></td>
  682. <td><p>Request message type for this method.</p>
  683. </td>
  684. </tr>
  685. <tr>
  686. <td><span class="parametername">TResponse</span></td>
  687. <td><p>Response message type for this method.</p>
  688. </td>
  689. </tr>
  690. </tbody>
  691. </table>
  692. <a id="Grpc_Core_Interceptors_Interceptor_ServerStreamingServerHandler_" data-uid="Grpc.Core.Interceptors.Interceptor.ServerStreamingServerHandler*"></a>
  693. <h4 id="Grpc_Core_Interceptors_Interceptor_ServerStreamingServerHandler__2___0_Grpc_Core_IServerStreamWriter___1__Grpc_Core_ServerCallContext_Grpc_Core_ServerStreamingServerMethod___0___1__" data-uid="Grpc.Core.Interceptors.Interceptor.ServerStreamingServerHandler``2(``0,Grpc.Core.IServerStreamWriter{``1},Grpc.Core.ServerCallContext,Grpc.Core.ServerStreamingServerMethod{``0,``1})">ServerStreamingServerHandler&lt;TRequest, TResponse&gt;(TRequest, IServerStreamWriter&lt;TResponse&gt;, ServerCallContext, ServerStreamingServerMethod&lt;TRequest, TResponse&gt;)</h4>
  694. <div class="markdown level1 summary"><p>Server-side handler for intercepting server streaming call.</p>
  695. </div>
  696. <div class="markdown level1 conceptual"></div>
  697. <h5 class="decalaration">Declaration</h5>
  698. <div class="codewrapper">
  699. <pre><code class="lang-csharp hljs">public virtual Task ServerStreamingServerHandler&lt;TRequest, TResponse&gt;(TRequest request, IServerStreamWriter&lt;TResponse&gt; responseStream, ServerCallContext context, ServerStreamingServerMethod&lt;TRequest, TResponse&gt; continuation)
  700. where TRequest : class where TResponse : class</code></pre>
  701. </div>
  702. <h5 class="parameters">Parameters</h5>
  703. <table class="table table-bordered table-striped table-condensed">
  704. <thead>
  705. <tr>
  706. <th>Type</th>
  707. <th>Name</th>
  708. <th>Description</th>
  709. </tr>
  710. </thead>
  711. <tbody>
  712. <tr>
  713. <td><span class="xref">TRequest</span></td>
  714. <td><span class="parametername">request</span></td>
  715. <td><p>The request value of the incoming invocation.</p>
  716. </td>
  717. </tr>
  718. <tr>
  719. <td><a class="xref" href="Grpc.Core.IServerStreamWriter-1.html">IServerStreamWriter</a>&lt;TResponse&gt;</td>
  720. <td><span class="parametername">responseStream</span></td>
  721. <td><p>The response stream of the incoming invocation.</p>
  722. </td>
  723. </tr>
  724. <tr>
  725. <td><a class="xref" href="Grpc.Core.ServerCallContext.html">ServerCallContext</a></td>
  726. <td><span class="parametername">context</span></td>
  727. <td><p>An instance of <a class="xref" href="Grpc.Core.ServerCallContext.html">ServerCallContext</a> representing
  728. the context of the invocation.</p>
  729. </td>
  730. </tr>
  731. <tr>
  732. <td><a class="xref" href="Grpc.Core.ServerStreamingServerMethod-2.html">ServerStreamingServerMethod</a>&lt;TRequest, TResponse&gt;</td>
  733. <td><span class="parametername">continuation</span></td>
  734. <td><p>A delegate that asynchronously proceeds with the invocation, calling
  735. the next interceptor in the chain, or the service request handler,
  736. in case of the last interceptor and the interceptor can choose to
  737. call it zero or more times at its discretion. The interceptor has
  738. the ability to wrap or substitute the request value and the response stream
  739. when calling the continuation.</p>
  740. </td>
  741. </tr>
  742. </tbody>
  743. </table>
  744. <h5 class="returns">Returns</h5>
  745. <table class="table table-bordered table-striped table-condensed">
  746. <thead>
  747. <tr>
  748. <th>Type</th>
  749. <th>Description</th>
  750. </tr>
  751. </thead>
  752. <tbody>
  753. <tr>
  754. <td><span class="xref">System.Threading.Tasks.Task</span></td>
  755. <td></td>
  756. </tr>
  757. </tbody>
  758. </table>
  759. <h5 class="typeParameters">Type Parameters</h5>
  760. <table class="table table-bordered table-striped table-condensed">
  761. <thead>
  762. <tr>
  763. <th>Name</th>
  764. <th>Description</th>
  765. </tr>
  766. </thead>
  767. <tbody>
  768. <tr>
  769. <td><span class="parametername">TRequest</span></td>
  770. <td><p>Request message type for this method.</p>
  771. </td>
  772. </tr>
  773. <tr>
  774. <td><span class="parametername">TResponse</span></td>
  775. <td><p>Response message type for this method.</p>
  776. </td>
  777. </tr>
  778. </tbody>
  779. </table>
  780. <a id="Grpc_Core_Interceptors_Interceptor_UnaryServerHandler_" data-uid="Grpc.Core.Interceptors.Interceptor.UnaryServerHandler*"></a>
  781. <h4 id="Grpc_Core_Interceptors_Interceptor_UnaryServerHandler__2___0_Grpc_Core_ServerCallContext_Grpc_Core_UnaryServerMethod___0___1__" data-uid="Grpc.Core.Interceptors.Interceptor.UnaryServerHandler``2(``0,Grpc.Core.ServerCallContext,Grpc.Core.UnaryServerMethod{``0,``1})">UnaryServerHandler&lt;TRequest, TResponse&gt;(TRequest, ServerCallContext, UnaryServerMethod&lt;TRequest, TResponse&gt;)</h4>
  782. <div class="markdown level1 summary"><p>Server-side handler for intercepting and incoming unary call.</p>
  783. </div>
  784. <div class="markdown level1 conceptual"></div>
  785. <h5 class="decalaration">Declaration</h5>
  786. <div class="codewrapper">
  787. <pre><code class="lang-csharp hljs">public virtual Task&lt;TResponse&gt; UnaryServerHandler&lt;TRequest, TResponse&gt;(TRequest request, ServerCallContext context, UnaryServerMethod&lt;TRequest, TResponse&gt; continuation)
  788. where TRequest : class where TResponse : class</code></pre>
  789. </div>
  790. <h5 class="parameters">Parameters</h5>
  791. <table class="table table-bordered table-striped table-condensed">
  792. <thead>
  793. <tr>
  794. <th>Type</th>
  795. <th>Name</th>
  796. <th>Description</th>
  797. </tr>
  798. </thead>
  799. <tbody>
  800. <tr>
  801. <td><span class="xref">TRequest</span></td>
  802. <td><span class="parametername">request</span></td>
  803. <td><p>The request value of the incoming invocation.</p>
  804. </td>
  805. </tr>
  806. <tr>
  807. <td><a class="xref" href="Grpc.Core.ServerCallContext.html">ServerCallContext</a></td>
  808. <td><span class="parametername">context</span></td>
  809. <td><p>An instance of <a class="xref" href="Grpc.Core.ServerCallContext.html">ServerCallContext</a> representing
  810. the context of the invocation.</p>
  811. </td>
  812. </tr>
  813. <tr>
  814. <td><a class="xref" href="Grpc.Core.UnaryServerMethod-2.html">UnaryServerMethod</a>&lt;TRequest, TResponse&gt;</td>
  815. <td><span class="parametername">continuation</span></td>
  816. <td><p>A delegate that asynchronously proceeds with the invocation, calling
  817. the next interceptor in the chain, or the service request handler,
  818. in case of the last interceptor and return the response value of
  819. the RPC. The interceptor can choose to call it zero or more times
  820. at its discretion.</p>
  821. </td>
  822. </tr>
  823. </tbody>
  824. </table>
  825. <h5 class="returns">Returns</h5>
  826. <table class="table table-bordered table-striped table-condensed">
  827. <thead>
  828. <tr>
  829. <th>Type</th>
  830. <th>Description</th>
  831. </tr>
  832. </thead>
  833. <tbody>
  834. <tr>
  835. <td><span class="xref">System.Threading.Tasks.Task</span>&lt;TResponse&gt;</td>
  836. <td><p>A future representing the response value of the RPC. The interceptor
  837. can simply return the return value from the continuation intact,
  838. or an arbitrary response value as it sees fit.</p>
  839. </td>
  840. </tr>
  841. </tbody>
  842. </table>
  843. <h5 class="typeParameters">Type Parameters</h5>
  844. <table class="table table-bordered table-striped table-condensed">
  845. <thead>
  846. <tr>
  847. <th>Name</th>
  848. <th>Description</th>
  849. </tr>
  850. </thead>
  851. <tbody>
  852. <tr>
  853. <td><span class="parametername">TRequest</span></td>
  854. <td><p>Request message type for this method.</p>
  855. </td>
  856. </tr>
  857. <tr>
  858. <td><span class="parametername">TResponse</span></td>
  859. <td><p>Response message type for this method.</p>
  860. </td>
  861. </tr>
  862. </tbody>
  863. </table>
  864. </article>
  865. </div>
  866. <div class="hidden-sm col-md-2" role="complementary">
  867. <div class="sideaffix">
  868. <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
  869. <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
  870. </nav>
  871. </div>
  872. </div>
  873. </div>
  874. </div>
  875. <footer>
  876. <div class="grad-bottom"></div>
  877. <div class="footer">
  878. <div class="container">
  879. <span class="pull-right">
  880. <a href="#top">Back to top</a>
  881. </span>
  882. <span>Generated by <strong>DocFX</strong></span>
  883. </div>
  884. </div>
  885. </footer>
  886. </div>
  887. <script type="text/javascript" src="../styles/docfx.vendor.js"></script>
  888. <script type="text/javascript" src="../styles/docfx.js"></script>
  889. <script type="text/javascript" src="../styles/main.js"></script>
  890. </body>
  891. </html>