Grpc.Core.Interceptors.Interceptor.html 40 KB

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