diff --git a/Docs/assets/images/shared.001.jpg b/Docs/assets/images/shared.001.jpg new file mode 100644 index 0000000..729a041 Binary files /dev/null and b/Docs/assets/images/shared.001.jpg differ diff --git a/Docs/多语言笔记.4.1.使用WebApi.ipynb b/Docs/多语言笔记.4.1.使用WebApi.ipynb index 5b2c352..d1a3c74 100644 --- a/Docs/多语言笔记.4.1.使用WebApi.ipynb +++ b/Docs/多语言笔记.4.1.使用WebApi.ipynb @@ -18,7 +18,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "dotnet_interactive": { "language": "csharp" @@ -27,7 +27,26 @@ "kernelName": "csharp" } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "<div><div><strong>Restore sources</strong><ul><li><span>https://api.nuget.org/v3/index.json</span></li></ul></div><div></div><div><strong>Installed Packages</strong><ul><li><span>microsoft.dotNet.interactive.aspnetcore, 1.0.0-beta.24229.4</span></li></ul></div></div>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "Loading extension script from `C:\\Users\\ruyu\\.nuget\\packages\\microsoft.dotnet.interactive.aspnetcore\\1.0.0-beta.24229.4\\interactive-extensions\\dotnet\\extension.dib`" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "// 可以先添加包源\n", "#i \"https://api.nuget.org/v3/index.json\"\n", @@ -46,7 +65,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { "dotnet_interactive": { "language": "csharp" @@ -55,7 +74,85 @@ "kernelName": "csharp" } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "<div class=\"http-response-message-container\"><style type=\"text/css\">\r\n", + " .http-response-message-container {\r\n", + " display: flex;\r\n", + " flex-wrap: wrap;\r\n", + " }\r\n", + "\r\n", + " .http-response-message-container > div {\r\n", + " margin: .5em;\r\n", + " padding: 1em;\r\n", + " border: 1px solid;\r\n", + " }\r\n", + "\r\n", + " .http-response-message-container > div > h2 {\r\n", + " margin-top: 0;\r\n", + " }\r\n", + "\r\n", + " .http-response-message-container > div > h3 {\r\n", + " margin-bottom: 0;\r\n", + " }\r\n", + "\r\n", + " .http-response-message-container summary {\r\n", + " margin: 1em 0;\r\n", + " font-size: 1.17em;\r\n", + " font-weight: 700;\r\n", + " }\r\n", + "\r\n", + " @keyframes blink {\r\n", + " 0% {\r\n", + " opacity: .2;\r\n", + " }\r\n", + " 20% {\r\n", + " opacity: 1;\r\n", + " }\r\n", + " 100% {\r\n", + " opacity: .2;\r\n", + " }\r\n", + " }\r\n", + "\r\n", + " .ellipsis span {\r\n", + " animation-name: blink;\r\n", + " animation-duration: 1.4s;\r\n", + " animation-iteration-count: infinite;\r\n", + " animation-fill-mode: both;\r\n", + " }\r\n", + "\r\n", + " .ellipsis span:nth-child(2) {\r\n", + " animation-delay: .2s;\r\n", + " }\r\n", + "\r\n", + " .ellipsis span:nth-child(3) {\r\n", + " animation-delay: .4s;\r\n", + " }</style><div><h2>Request</h2><hr></hr><h3>GET <a href=\"http://127.0.0.1:4230/\">http://127.0.0.1:4230/</a> HTTP/1.1</h3><details><summary>Headers</summary><table><thead><tr><th>Name</th><th>Value</th></tr></thead><tbody><tr><td>traceparent</td><td>00-9f30dd383da7da9695452942910e5eeb-9074df5bcf652253-00</td></tr></tbody></table></details><details><summary>Body (0 bytes)</summary><pre></pre></details></div><div><h2>Response</h2><hr></hr><h3>HTTP/1.1 200 OK ( ms)</h3><details open=\"True\"><summary>Headers</summary><table><thead><tr><th>Name</th><th>Value</th></tr></thead><tbody><tr><td>Date</td><td>Sun, 05 May 2024 16:42:55 GMT</td></tr><tr><td>Server</td><td>Kestrel</td></tr><tr><td>Transfer-Encoding</td><td>chunked</td></tr><tr><td>Content-Length</td><td>18</td></tr></tbody></table></details><details open=\"True\"><summary>Body (18 bytes)</summary>Hello from MapGet!</details></div></div>" + ], + "text/plain": [ + "Request Method: GET\r\n", + "Request URI: http://127.0.0.1:4230/\r\n", + "Request Version: HTTP/1.1\r\n", + "\r\n", + "Status Code: 200 OK\r\n", + "Elapsed: ms\r\n", + "Version: HTTP/1.1\r\n", + "Content Type: \r\n", + "Content Length: 18 bytes\r\n", + "\r\n", + "Date: Sun, 05 May 2024 16:42:55 GMT\r\n", + "Server: Kestrel\r\n", + "Transfer-Encoding: chunked\r\n", + "Content-Length: 18\r\n", + "Body: Hello from MapGet!\r\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "#!aspnet\n", "\n", @@ -185,7 +282,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { "dotnet_interactive": { "language": "csharp" @@ -194,7 +291,83 @@ "kernelName": "csharp" } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "<div class=\"http-response-message-container\"><style type=\"text/css\">\r\n", + " .http-response-message-container {\r\n", + " display: flex;\r\n", + " flex-wrap: wrap;\r\n", + " }\r\n", + "\r\n", + " .http-response-message-container > div {\r\n", + " margin: .5em;\r\n", + " padding: 1em;\r\n", + " border: 1px solid;\r\n", + " }\r\n", + "\r\n", + " .http-response-message-container > div > h2 {\r\n", + " margin-top: 0;\r\n", + " }\r\n", + "\r\n", + " .http-response-message-container > div > h3 {\r\n", + " margin-bottom: 0;\r\n", + " }\r\n", + "\r\n", + " .http-response-message-container summary {\r\n", + " margin: 1em 0;\r\n", + " font-size: 1.17em;\r\n", + " font-weight: 700;\r\n", + " }\r\n", + "\r\n", + " @keyframes blink {\r\n", + " 0% {\r\n", + " opacity: .2;\r\n", + " }\r\n", + " 20% {\r\n", + " opacity: 1;\r\n", + " }\r\n", + " 100% {\r\n", + " opacity: .2;\r\n", + " }\r\n", + " }\r\n", + "\r\n", + " .ellipsis span {\r\n", + " animation-name: blink;\r\n", + " animation-duration: 1.4s;\r\n", + " animation-iteration-count: infinite;\r\n", + " animation-fill-mode: both;\r\n", + " }\r\n", + "\r\n", + " .ellipsis span:nth-child(2) {\r\n", + " animation-delay: .2s;\r\n", + " }\r\n", + "\r\n", + " .ellipsis span:nth-child(3) {\r\n", + " animation-delay: .4s;\r\n", + " }</style><div><h2>Request</h2><hr></hr><h3>GET <a href=\"http://127.0.0.1:4230/\">http://127.0.0.1:4230/</a> HTTP/1.1</h3><details><summary>Headers</summary><table><thead><tr><th>Name</th><th>Value</th></tr></thead><tbody><tr><td>traceparent</td><td>00-9f30dd383da7da9695452942910e5eeb-f3d20b96fdaaa199-00</td></tr></tbody></table></details><details><summary>Body (0 bytes)</summary><pre></pre></details></div><div><h2>Response</h2><hr></hr><h3>HTTP/1.1 500 Internal Server Error ( ms)</h3><details open=\"True\"><summary>Headers</summary><table><thead><tr><th>Name</th><th>Value</th></tr></thead><tbody><tr><td>Date</td><td>Sun, 05 May 2024 16:43:07 GMT</td></tr><tr><td>Server</td><td>Kestrel</td></tr><tr><td>Content-Length</td><td>0</td></tr></tbody></table></details><details open=\"True\"><summary>Body (0 bytes)</summary></details></div></div>" + ], + "text/plain": [ + "Request Method: GET\r\n", + "Request URI: http://127.0.0.1:4230/\r\n", + "Request Version: HTTP/1.1\r\n", + "\r\n", + "Status Code: 500 Internal Server Error\r\n", + "Elapsed: ms\r\n", + "Version: HTTP/1.1\r\n", + "Content Type: \r\n", + "Content Length: 0 bytes\r\n", + "\r\n", + "Date: Sun, 05 May 2024 16:43:07 GMT\r\n", + "Server: Kestrel\r\n", + "Content-Length: 0\r\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "#!aspnet\n", "\n", @@ -208,7 +381,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { "dotnet_interactive": { "language": "csharp" @@ -217,7 +390,83 @@ "kernelName": "csharp" } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "<div class=\"http-response-message-container\"><style type=\"text/css\">\r\n", + " .http-response-message-container {\r\n", + " display: flex;\r\n", + " flex-wrap: wrap;\r\n", + " }\r\n", + "\r\n", + " .http-response-message-container > div {\r\n", + " margin: .5em;\r\n", + " padding: 1em;\r\n", + " border: 1px solid;\r\n", + " }\r\n", + "\r\n", + " .http-response-message-container > div > h2 {\r\n", + " margin-top: 0;\r\n", + " }\r\n", + "\r\n", + " .http-response-message-container > div > h3 {\r\n", + " margin-bottom: 0;\r\n", + " }\r\n", + "\r\n", + " .http-response-message-container summary {\r\n", + " margin: 1em 0;\r\n", + " font-size: 1.17em;\r\n", + " font-weight: 700;\r\n", + " }\r\n", + "\r\n", + " @keyframes blink {\r\n", + " 0% {\r\n", + " opacity: .2;\r\n", + " }\r\n", + " 20% {\r\n", + " opacity: 1;\r\n", + " }\r\n", + " 100% {\r\n", + " opacity: .2;\r\n", + " }\r\n", + " }\r\n", + "\r\n", + " .ellipsis span {\r\n", + " animation-name: blink;\r\n", + " animation-duration: 1.4s;\r\n", + " animation-iteration-count: infinite;\r\n", + " animation-fill-mode: both;\r\n", + " }\r\n", + "\r\n", + " .ellipsis span:nth-child(2) {\r\n", + " animation-delay: .2s;\r\n", + " }\r\n", + "\r\n", + " .ellipsis span:nth-child(3) {\r\n", + " animation-delay: .4s;\r\n", + " }</style><div><h2>Request</h2><hr></hr><h3>GET <a href=\"http://127.0.0.1:4230/\">http://127.0.0.1:4230/</a> HTTP/1.1</h3><details><summary>Headers</summary><table><thead><tr><th>Name</th><th>Value</th></tr></thead><tbody><tr><td>traceparent</td><td>00-9f30dd383da7da9695452942910e5eeb-a79a9b38cdb6229a-00</td></tr></tbody></table></details><details><summary>Body (0 bytes)</summary><pre></pre></details></div><div><h2>Response</h2><hr></hr><h3>HTTP/1.1 500 Internal Server Error ( ms)</h3><details open=\"True\"><summary>Headers</summary><table><thead><tr><th>Name</th><th>Value</th></tr></thead><tbody><tr><td>Date</td><td>Sun, 05 May 2024 16:43:27 GMT</td></tr><tr><td>Server</td><td>Kestrel</td></tr><tr><td>Content-Length</td><td>0</td></tr></tbody></table></details><details open=\"True\"><summary>Body (0 bytes)</summary></details></div></div>" + ], + "text/plain": [ + "Request Method: GET\r\n", + "Request URI: http://127.0.0.1:4230/\r\n", + "Request Version: HTTP/1.1\r\n", + "\r\n", + "Status Code: 500 Internal Server Error\r\n", + "Elapsed: ms\r\n", + "Version: HTTP/1.1\r\n", + "Content Type: \r\n", + "Content Length: 0 bytes\r\n", + "\r\n", + "Date: Sun, 05 May 2024 16:43:27 GMT\r\n", + "Server: Kestrel\r\n", + "Content-Length: 0\r\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "#!aspnet\n", "Endpoints.MapGet(\"/\", async context =>\n", @@ -230,7 +479,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": { "dotnet_interactive": { "language": "csharp" @@ -239,7 +488,48 @@ "kernelName": "csharp" } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "<details open=\"open\" class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>http://127.0.0.1:4230/</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>AbsolutePath</td><td><div class=\"dni-plaintext\"><pre>/</pre></div></td></tr><tr><td>AbsoluteUri</td><td><div class=\"dni-plaintext\"><pre>http://127.0.0.1:4230/</pre></div></td></tr><tr><td>LocalPath</td><td><div class=\"dni-plaintext\"><pre>/</pre></div></td></tr><tr><td>Authority</td><td><div class=\"dni-plaintext\"><pre>127.0.0.1:4230</pre></div></td></tr><tr><td>HostNameType</td><td><span>IPv4</span></td></tr><tr><td>IsDefaultPort</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsFile</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsLoopback</td><td><div class=\"dni-plaintext\"><pre>True</pre></div></td></tr><tr><td>PathAndQuery</td><td><div class=\"dni-plaintext\"><pre>/</pre></div></td></tr><tr><td>Segments</td><td><div class=\"dni-plaintext\"><pre>[ / ]</pre></div></td></tr><tr><td>IsUnc</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>Host</td><td><div class=\"dni-plaintext\"><pre>127.0.0.1</pre></div></td></tr><tr><td>Port</td><td><div class=\"dni-plaintext\"><pre>4230</pre></div></td></tr><tr><td>Query</td><td><div class=\"dni-plaintext\"><pre></pre></div></td></tr><tr><td>Fragment</td><td><div class=\"dni-plaintext\"><pre></pre></div></td></tr><tr><td>Scheme</td><td><div class=\"dni-plaintext\"><pre>http</pre></div></td></tr><tr><td>OriginalString</td><td><div class=\"dni-plaintext\"><pre>http://127.0.0.1:4230</pre></div></td></tr><tr><td>DnsSafeHost</td><td><div class=\"dni-plaintext\"><pre>127.0.0.1</pre></div></td></tr><tr><td>IdnHost</td><td><div class=\"dni-plaintext\"><pre>127.0.0.1</pre></div></td></tr><tr><td>IsAbsoluteUri</td><td><div class=\"dni-plaintext\"><pre>True</pre></div></td></tr><tr><td>UserEscaped</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>UserInfo</td><td><div class=\"dni-plaintext\"><pre></pre></div></td></tr></tbody></table></div></details><style>\r\n", + ".dni-code-hint {\r\n", + " font-style: italic;\r\n", + " overflow: hidden;\r\n", + " white-space: nowrap;\r\n", + "}\r\n", + ".dni-treeview {\r\n", + " white-space: nowrap;\r\n", + "}\r\n", + ".dni-treeview td {\r\n", + " vertical-align: top;\r\n", + " text-align: start;\r\n", + "}\r\n", + "details.dni-treeview {\r\n", + " padding-left: 1em;\r\n", + "}\r\n", + "table td {\r\n", + " text-align: start;\r\n", + "}\r\n", + "table tr { \r\n", + " vertical-align: top; \r\n", + " margin: 0em 0px;\r\n", + "}\r\n", + "table tr td pre \r\n", + "{ \r\n", + " vertical-align: top !important; \r\n", + " margin: 0em 0px !important;\r\n", + "} \r\n", + "table th {\r\n", + " text-align: start;\r\n", + "}\r\n", + "</style>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "#!aspnet\n", "\n", @@ -248,7 +538,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": { "dotnet_interactive": { "language": "csharp" @@ -257,7 +547,53 @@ "kernelName": "csharp" } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "<details open=\"open\" class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.AspNetCore.Builder.ApplicationBuilder</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>ApplicationServices</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>IsRootScope</td><td><div class=\"dni-plaintext\"><pre>True</pre></div></td></tr><tr><td>ServiceProvider</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>IsRootScope</td><td><div class=\"dni-plaintext\"><pre>True</pre></div></td></tr><tr><td>ServiceProvider</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>IsRootScope</td><td><div class=\"dni-plaintext\"><pre>True</pre></div></td></tr><tr><td>ServiceProvider</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>IsRootScope</td><td><div class=\"dni-plaintext\"><pre>True</pre></div></td></tr><tr><td>ServiceProvider</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>IsRootScope</td><td>True</td></tr><tr><td>ServiceProvider</td><td>Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope</td></tr></tbody></table></div></details></td></tr></tbody></table></div></details></td></tr></tbody></table></div></details></td></tr></tbody></table></div></details></td></tr></tbody></table></div></details></td></tr><tr><td>ServerFeatures</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>[ [Microsoft.AspNetCore.Hosting.Server.Features.IServerAddressesFeature, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.ServerAddressesFeature] ]</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Revision</td><td><div class=\"dni-plaintext\"><pre>1</pre></div></td></tr><tr><td>IsReadOnly</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td><i>(values)</i></td><td><table><thead><tr><th><i>index</i></th><th>value</th></tr></thead><tbody><tr><td>0</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>[Microsoft.AspNetCore.Hosting.Server.Features.IServerAddressesFeature, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.ServerAddressesFeature]</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Key</td><td><span><a href=\"https://docs.microsoft.com/dotnet/api/microsoft.aspnetcore.hosting.server.features.iserveraddressesfeature?view=net-7.0\">Microsoft.AspNetCore.Hosting.Server.Features.IServerAddressesFeature</a></span></td></tr><tr><td>Value</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.AspNetCore.Server.Kestrel.Core.Internal.ServerAddressesFeature</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>InternalCollection</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>[ http://127.0.0.1:4230 ]</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>PublicCollection</td><td><div class=\"dni-plaintext\"><pre>[ http://127.0.0.1:4230 ]</pre></div></td></tr><tr><td>IsReadOnly</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>Count</td><td><div class=\"dni-plaintext\"><pre>1</pre></div></td></tr><tr><td><i>(values)</i></td><td><div class=\"dni-plaintext\"><pre>[ http://127.0.0.1:4230 ]</pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>PreferHostingUrls</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table></div></details></td></tr></tbody></table></td></tr></tbody></table></div></details></td></tr><tr><td>Properties</td><td><table><thead><tr><th><i>key</i></th><th><i>type</i></th><th>value</th></tr></thead><tbody><tr><td><div class=\"dni-plaintext\"><pre>application.Services</pre></div></td><td><span><a href=\"https://docs.microsoft.com/dotnet/api/microsoft.extensions.dependencyinjection.servicelookup.serviceproviderenginescope?view=net-7.0\">Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope</a></span></td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>IsRootScope</td><td><div class=\"dni-plaintext\"><pre>True</pre></div></td></tr><tr><td>ServiceProvider</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>IsRootScope</td><td><div class=\"dni-plaintext\"><pre>True</pre></div></td></tr><tr><td>ServiceProvider</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>IsRootScope</td><td><div class=\"dni-plaintext\"><pre>True</pre></div></td></tr><tr><td>ServiceProvider</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>IsRootScope</td><td>True</td></tr><tr><td>ServiceProvider</td><td>Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope</td></tr></tbody></table></div></details></td></tr></tbody></table></div></details></td></tr></tbody></table></div></details></td></tr></tbody></table></div></details></td></tr><tr><td><div class=\"dni-plaintext\"><pre>server.Features</pre></div></td><td><span><a href=\"https://docs.microsoft.com/dotnet/api/microsoft.aspnetcore.http.features.featurecollection?view=net-7.0\">Microsoft.AspNetCore.Http.Features.FeatureCollection</a></span></td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>[ [Microsoft.AspNetCore.Hosting.Server.Features.IServerAddressesFeature, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.ServerAddressesFeature] ]</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Revision</td><td><div class=\"dni-plaintext\"><pre>1</pre></div></td></tr><tr><td>IsReadOnly</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td><i>(values)</i></td><td><table><thead><tr><th><i>index</i></th><th>value</th></tr></thead><tbody><tr><td>0</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>[Microsoft.AspNetCore.Hosting.Server.Features.IServerAddressesFeature, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.ServerAddressesFeature]</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Key</td><td><span><a href=\"https://docs.microsoft.com/dotnet/api/microsoft.aspnetcore.hosting.server.features.iserveraddressesfeature?view=net-7.0\">Microsoft.AspNetCore.Hosting.Server.Features.IServerAddressesFeature</a></span></td></tr><tr><td>Value</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.AspNetCore.Server.Kestrel.Core.Internal.ServerAddressesFeature</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>InternalCollection</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>[ http://127.0.0.1:4230 ]</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>PublicCollection</td><td>[ http://127.0.0.1:4230 ]</td></tr><tr><td>IsReadOnly</td><td>False</td></tr><tr><td>Count</td><td>1</td></tr><tr><td><i>(values)</i></td><td><div class=\"dni-plaintext\"><pre>[ http://127.0.0.1:4230 ]</pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>PreferHostingUrls</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table></div></details></td></tr></tbody></table></td></tr></tbody></table></div></details></td></tr><tr><td><div class=\"dni-plaintext\"><pre>__EndpointRouteBuilder</pre></div></td><td><span><a href=\"https://docs.microsoft.com/dotnet/api/microsoft.aspnetcore.routing.defaultendpointroutebuilder?view=net-7.0\">Microsoft.AspNetCore.Routing.DefaultEndpointRouteBuilder</a></span></td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.AspNetCore.Routing.DefaultEndpointRouteBuilder</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>ApplicationBuilder</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.AspNetCore.Builder.ApplicationBuilder</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>ApplicationServices</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>IsRootScope</td><td><div class=\"dni-plaintext\"><pre>True</pre></div></td></tr><tr><td>ServiceProvider</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>IsRootScope</td><td>True</td></tr><tr><td>ServiceProvider</td><td>Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope</td></tr></tbody></table></div></details></td></tr></tbody></table></div></details></td></tr><tr><td>ServerFeatures</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>[ [Microsoft.AspNetCore.Hosting.Server.Features.IServerAddressesFeature, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.ServerAddressesFeature] ]</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Revision</td><td><div class=\"dni-plaintext\"><pre>1</pre></div></td></tr><tr><td>IsReadOnly</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td><i>(values)</i></td><td><table><thead><tr><th><i>index</i></th><th>value</th></tr></thead><tbody><tr><td>0</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>[Microsoft.AspNetCore.Hosting.Server.Features.IServerAddressesFeature, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.ServerAddressesFeature]</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Key</td><td>Microsoft.AspNetCore.Hosting.Server.Features.IServerAddressesFeature</td></tr><tr><td>Value</td><td>Microsoft.AspNetCore.Server.Kestrel.Core.Internal.ServerAddressesFeature</td></tr></tbody></table></div></details></td></tr></tbody></table></td></tr></tbody></table></div></details></td></tr><tr><td>Properties</td><td><table><thead><tr><th><i>key</i></th><th><i>type</i></th><th>value</th></tr></thead><tbody><tr><td><div class=\"dni-plaintext\"><pre>application.Services</pre></div></td><td><span><a href=\"https://docs.microsoft.com/dotnet/api/microsoft.extensions.dependencyinjection.servicelookup.serviceproviderenginescope?view=net-7.0\">Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope</a></span></td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>IsRootScope</td><td>True</td></tr><tr><td>ServiceProvider</td><td>Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope</td></tr></tbody></table></div></details></td></tr><tr><td><div class=\"dni-plaintext\"><pre>server.Features</pre></div></td><td><span><a href=\"https://docs.microsoft.com/dotnet/api/microsoft.aspnetcore.http.features.featurecollection?view=net-7.0\">Microsoft.AspNetCore.Http.Features.FeatureCollection</a></span></td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>[ [Microsoft.AspNetCore.Hosting.Server.Features.IServerAddressesFeature, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.ServerAddressesFeature] ]</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Revision</td><td>1</td></tr><tr><td>IsReadOnly</td><td>False</td></tr><tr><td><i>(values)</i></td><td><table><thead><tr><th><i>index</i></th><th>value</th></tr></thead><tbody><tr><td>0</td><td>[Microsoft.AspNetCore.Hosting.Server.Features.IServerAddressesFeature, Microsoft.AspNetCore.Server.Kestrel.Core.Internal.ServerAddressesFeature]</td></tr></tbody></table></td></tr></tbody></table></div></details></td></tr><tr><td><div class=\"dni-plaintext\"><pre>__EndpointRouteBuilder</pre></div></td><td><span><a href=\"https://docs.microsoft.com/dotnet/api/microsoft.aspnetcore.routing.defaultendpointroutebuilder?view=net-7.0\">Microsoft.AspNetCore.Routing.DefaultEndpointRouteBuilder</a></span></td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.AspNetCore.Routing.DefaultEndpointRouteBuilder</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>ApplicationBuilder</td><td>Microsoft.AspNetCore.Builder.ApplicationBuilder</td></tr><tr><td>DataSources</td><td>[ Microsoft.AspNetCore.Routing.RouteEndpointDataSource ]</td></tr><tr><td>ServiceProvider</td><td>Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope</td></tr></tbody></table></div></details></td></tr><tr><td><div class=\"dni-plaintext\"><pre>__UseRouting</pre></div></td><td><span><a href=\"https://docs.microsoft.com/dotnet/api/system.func-2?view=net-7.0\">System.Func<Microsoft.AspNetCore.Builder.IApplicationBuilder,Microsoft.AspNetCore.Builder.IApplicationBuilder></a></span></td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>System.Func`2[Microsoft.AspNetCore.Builder.IApplicationBuilder,Microsoft.AspNetCore.Builder.IApplicationBuilder]</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Target</td><td><div class=\"dni-plaintext\"><pre><null></pre></div></td></tr><tr><td>Method</td><td>Microsoft.AspNetCore.Builder.IApplicationBuilder UseRouting(Microsoft.AspNetCore.Builder.IApplicationBuilder)</td></tr></tbody></table></div></details></td></tr></tbody></table></td></tr></tbody></table></div></details></td></tr><tr><td>DataSources</td><td><table><thead><tr><th><i>index</i></th><th>value</th></tr></thead><tbody><tr><td>0</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.AspNetCore.Routing.RouteEndpointDataSource</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Endpoints</td><td><div class=\"dni-plaintext\"><pre>Microsoft.AspNetCore.Routing.RouteEndpointDataSource</pre></div></td></tr><tr><td>Endpoints</td><td><div class=\"dni-plaintext\"><pre>Microsoft.AspNetCore.Routing.RouteEndpointDataSource</pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table></td></tr><tr><td>ServiceProvider</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>IsRootScope</td><td><div class=\"dni-plaintext\"><pre>True</pre></div></td></tr><tr><td>ServiceProvider</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>IsRootScope</td><td><div class=\"dni-plaintext\"><pre>True</pre></div></td></tr><tr><td>ServiceProvider</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>IsRootScope</td><td>True</td></tr><tr><td>ServiceProvider</td><td>Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope</td></tr></tbody></table></div></details></td></tr></tbody></table></div></details></td></tr></tbody></table></div></details></td></tr></tbody></table></div></details></td></tr><tr><td><div class=\"dni-plaintext\"><pre>__UseRouting</pre></div></td><td><span><a href=\"https://docs.microsoft.com/dotnet/api/system.func-2?view=net-7.0\">System.Func<Microsoft.AspNetCore.Builder.IApplicationBuilder,Microsoft.AspNetCore.Builder.IApplicationBuilder></a></span></td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>System.Func`2[Microsoft.AspNetCore.Builder.IApplicationBuilder,Microsoft.AspNetCore.Builder.IApplicationBuilder]</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Target</td><td><div class=\"dni-plaintext\"><pre><null></pre></div></td></tr><tr><td>Method</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.AspNetCore.Builder.IApplicationBuilder UseRouting(Microsoft.AspNetCore.Builder.IApplicationBuilder)</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Name</td><td><div class=\"dni-plaintext\"><pre>UseRouting</pre></div></td></tr><tr><td>DeclaringType</td><td><span><a href=\"https://docs.microsoft.com/dotnet/api/microsoft.aspnetcore.builder.endpointroutingapplicationbuilderextensions?view=net-7.0\">Microsoft.AspNetCore.Builder.EndpointRoutingApplicationBuilderExtensions</a></span></td></tr><tr><td>ReflectedType</td><td><span><a href=\"https://docs.microsoft.com/dotnet/api/microsoft.aspnetcore.builder.endpointroutingapplicationbuilderextensions?view=net-7.0\">Microsoft.AspNetCore.Builder.EndpointRoutingApplicationBuilderExtensions</a></span></td></tr><tr><td>MemberType</td><td><span>Method</span></td></tr><tr><td>MetadataToken</td><td><div class=\"dni-plaintext\"><pre>100663382</pre></div></td></tr><tr><td>Module</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.AspNetCore.Routing.dll</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>MDStreamVersion</td><td><div class=\"dni-plaintext\"><pre>131072</pre></div></td></tr><tr><td>FullyQualifiedName</td><td><div class=\"dni-plaintext\"><pre>C:\\Program Files\\dotnet\\shared\\Microsoft.AspNetCore.App\\8.0.4\\Microsoft.AspNetCore.Routing.dll</pre></div></td></tr><tr><td>ModuleVersionId</td><td><div class=\"dni-plaintext\"><pre>6c078444-7365-4d36-a723-507bbed36e5f</pre></div></td></tr><tr><td>MetadataToken</td><td><div class=\"dni-plaintext\"><pre>1</pre></div></td></tr><tr><td>ScopeName</td><td><div class=\"dni-plaintext\"><pre>Microsoft.AspNetCore.Routing.dll</pre></div></td></tr><tr><td>Name</td><td><div class=\"dni-plaintext\"><pre>Microsoft.AspNetCore.Routing.dll</pre></div></td></tr><tr><td>Assembly</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.AspNetCore.Routing, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>CodeBase</td><td>file:///C:/Program Files/dotnet/shared/Microsoft.AspNetCore.App/8.0.4/Microsoft.AspNetCore.Routing.dll</td></tr><tr><td>FullName</td><td>Microsoft.AspNetCore.Routing, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60</td></tr><tr><td>EntryPoint</td><td><div class=\"dni-plaintext\"><pre><null></pre></div></td></tr><tr><td>DefinedTypes</td><td>[ HttpExtensions, System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__GetAlphaRouteRegex_0, System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities, System.Runtime.CompilerServices.TypeHelper, Microsoft.Net.Http.Headers.HttpRuleParser, Microsoft.Net.Http.Headers.HttpParseResult, Microsoft.Extensions.Internal.PropertyHelper, Microsoft.Extensions.DependencyInjection.ConfigureRouteOptions, Microsoft.Extensions.DependencyInjection.RoutingServiceCollectionExtensions, Microsoft.Extensions.DependencyInjection.RegexInlineRouteConstraintSetup, Microsoft.AspNetCore.Shared.DebuggerHelpers, Microsoft.AspNetCore.Internal.ExecuteHandlerHelper, Microsoft.AspNetCore.Internal.RouteValueDictionaryTrimmerWarning, Microsoft.AspNetCore.Builder.EndpointRouteBuilderExtensions, Microsoft.AspNetCore.Builder.EndpointRoutingApplicationBuilderExtensions, Microsoft.AspNetCore.Builder.FallbackEndpointRouteBuilderExtensions, Microsoft.AspNetCore.Builder.RouteHandlerBuilder, Microsoft.AspNetCore.Builder.RoutingBuilderExtensions, Microsoft.AspNetCore.Builder.RoutingEndpointConventionBuilderExtensions, Microsoft.AspNetCore.Builder.MapRouteRouteBuilderExtensions ... (341 more) ]</td></tr><tr><td>IsCollectible</td><td>False</td></tr><tr><td>ManifestModule</td><td>Microsoft.AspNetCore.Routing.dll</td></tr><tr><td>ReflectionOnly</td><td>False</td></tr><tr><td>Location</td><td>C:\\Program Files\\dotnet\\shared\\Microsoft.AspNetCore.App\\8.0.4\\Microsoft.AspNetCore.Routing.dll</td></tr><tr><td>ImageRuntimeVersion</td><td>v4.0.30319</td></tr><tr><td>GlobalAssemblyCache</td><td>False</td></tr><tr><td>HostContext</td><td>0</td></tr><tr><td>IsDynamic</td><td>False</td></tr><tr><td>ExportedTypes</td><td>[ Microsoft.Extensions.DependencyInjection.RoutingServiceCollectionExtensions, Microsoft.AspNetCore.Builder.EndpointRouteBuilderExtensions, Microsoft.AspNetCore.Builder.EndpointRoutingApplicationBuilderExtensions, Microsoft.AspNetCore.Builder.FallbackEndpointRouteBuilderExtensions, Microsoft.AspNetCore.Builder.RouteHandlerBuilder, Microsoft.AspNetCore.Builder.RoutingBuilderExtensions, Microsoft.AspNetCore.Builder.RoutingEndpointConventionBuilderExtensions, Microsoft.AspNetCore.Builder.MapRouteRouteBuilderExtensions, Microsoft.AspNetCore.Builder.RouterMiddleware, Microsoft.AspNetCore.Builder.RouteShortCircuitEndpointConventionBuilderExtensions, Microsoft.AspNetCore.Http.EndpointFilterExtensions, Microsoft.AspNetCore.Http.OpenApiRouteHandlerBuilderExtensions, Microsoft.AspNetCore.Routing.RouteHandlerServices, Microsoft.AspNetCore.Routing.CompositeEndpointDataSource, Microsoft.AspNetCore.Routing.DataTokensMetadata, Microsoft.AspNetCore.Routing.DefaultEndpointDataSource, Microsoft.AspNetCore.Routing.DefaultInlineConstraintResolver, Microsoft.AspNetCore.Routing.EndpointDataSource, Microsoft.AspNetCore.Routing.EndpointGroupNameAttribute, Microsoft.AspNetCore.Routing.EndpointNameAttribute ... (118 more) ]</td></tr><tr><td>IsFullyTrusted</td><td>True</td></tr><tr><td>CustomAttributes</td><td>[ [System.Runtime.CompilerServices.ExtensionAttribute()], [System.Runtime.CompilerServices.CompilationRelaxationsAttribute((Int32)8)], [System.Runtime.CompilerServices.RuntimeCompatibilityAttribute(WrapNonExceptionThrows = True)], [System.Diagnostics.DebuggableAttribute((System.Diagnostics.DebuggableAttribute+DebuggingModes)2)], [System.Reflection.Metadata.MetadataUpdateHandlerAttribute(typeof(Microsoft.Extensions.Internal.PropertyHelper+MetadataUpdateHandler))], [System.Runtime.Versioning.TargetFrameworkAttribute(\".NETCoreApp,Version=v8.0\", FrameworkDisplayName = \".NET 8.0\")], [System.Runtime.CompilerServices.InternalsVisibleToAttribute(\"Microsoft.AspNetCore.OpenApi.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb\")], [System.Runtime.CompilerServices.InternalsVisibleToAttribute(\"Microsoft.AspNetCore.Routing.Microbenchmarks, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb\")], [System.Runtime.CompilerServices.InternalsVisibleToAttribute(\"Microsoft.AspNetCore.Routing.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb\")], [System.Runtime.CompilerServices.InternalsVisibleToAttribute(\"Microsoft.AspNetCore.Mvc.ApiExplorer.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb\")], [System.Runtime.CompilerServices.InternalsVisibleToAttribute(\"DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7\")], [System.Runtime.CompilerServices.InternalsVisibleToAttribute(\"Microsoft.AspNetCore.Mvc.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb\")], [System.Reflection.AssemblyMetadataAttribute(\"IsTrimmable\", \"True\")], [System.Reflection.AssemblyMetadataAttribute(\"CommitHash\", \"8486d31e24f30e3fa1809a95699a0adc16f448d7\")], [System.Reflection.AssemblyMetadataAttribute(\"SourceCommitUrl\", \"https://github.com/dotnet/aspnetcore/tree/8486d31e24f30e3fa1809a95699a0adc16f448d7\")], [System.Reflection.AssemblyMetadataAttribute(\"Serviceable\", \"True\")], [System.Reflection.AssemblyCompanyAttribute(\"Microsoft Corporation\")], [System.Reflection.AssemblyConfigurationAttribute(\"Release\")], [System.Reflection.AssemblyCopyrightAttribute(\"© Microsoft Corporation. All rights reserved.\")], [System.Reflection.AssemblyDescriptionAttribute(\"\r\n", + " ASP.NET Core middleware for routing requests to application logic and for generating links.\r\n", + " Commonly used types:\r\n", + " Microsoft.AspNetCore.Routing.Route\r\n", + " Microsoft.AspNetCore.Routing.RouteCollection\r\n", + " \")] ... (6 more) ]</td></tr><tr><td>EscapedCodeBase</td><td>file:///C:/Program%20Files/dotnet/shared/Microsoft.AspNetCore.App/8.0.4/Microsoft.AspNetCore.Routing.dll</td></tr><tr><td>Modules</td><td>[ Microsoft.AspNetCore.Routing.dll ]</td></tr><tr><td>SecurityRuleSet</td><td>None</td></tr></tbody></table></div></details></td></tr><tr><td>ModuleHandle</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>System.ModuleHandle</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>MDStreamVersion</td><td>131072</td></tr></tbody></table></div></details></td></tr><tr><td>CustomAttributes</td><td><table><thead><tr><th><i>index</i></th><th>value</th></tr></thead><tbody><tr><td>0</td><td>[System.Security.UnverifiableCodeAttribute()]</td></tr><tr><td>1</td><td>[System.Runtime.CompilerServices.RefSafetyRulesAttribute((Int32)11)]</td></tr><tr><td>2</td><td>[System.Runtime.CompilerServices.NullablePublicOnlyAttribute((Boolean)True)]</td></tr></tbody></table></td></tr></tbody></table></div></details></td></tr><tr><td>IsSecurityCritical</td><td><div class=\"dni-plaintext\"><pre>True</pre></div></td></tr><tr><td>IsSecuritySafeCritical</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsSecurityTransparent</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>MethodHandle</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>System.RuntimeMethodHandle</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Value</td><td><div class=\"dni-plaintext\"><pre>140713067293856</pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Attributes</td><td><span>Public, Static, HideBySig</span></td></tr><tr><td>CallingConvention</td><td><span>Standard</span></td></tr><tr><td>ReturnType</td><td><span><a href=\"https://docs.microsoft.com/dotnet/api/microsoft.aspnetcore.builder.iapplicationbuilder?view=net-7.0\">Microsoft.AspNetCore.Builder.IApplicationBuilder</a></span></td></tr><tr><td>ReturnTypeCustomAttributes</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.AspNetCore.Builder.IApplicationBuilder</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>ParameterType</td><td><span><a href=\"https://docs.microsoft.com/dotnet/api/microsoft.aspnetcore.builder.iapplicationbuilder?view=net-7.0\">Microsoft.AspNetCore.Builder.IApplicationBuilder</a></span></td></tr><tr><td>Name</td><td><div class=\"dni-plaintext\"><pre><null></pre></div></td></tr><tr><td>HasDefaultValue</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>DefaultValue</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code></code></span></summary><div><table><thead><tr></tr></thead><tbody></tbody></table></div></details></td></tr><tr><td>RawDefaultValue</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code></code></span></summary><div><table><thead><tr></tr></thead><tbody></tbody></table></div></details></td></tr><tr><td>MetadataToken</td><td><div class=\"dni-plaintext\"><pre>134217728</pre></div></td></tr><tr><td>Attributes</td><td><span>None</span></td></tr><tr><td>Member</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.AspNetCore.Builder.IApplicationBuilder UseRouting(Microsoft.AspNetCore.Builder.IApplicationBuilder)</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Name</td><td>UseRouting</td></tr><tr><td>DeclaringType</td><td>Microsoft.AspNetCore.Builder.EndpointRoutingApplicationBuilderExtensions</td></tr><tr><td>ReflectedType</td><td>Microsoft.AspNetCore.Builder.EndpointRoutingApplicationBuilderExtensions</td></tr><tr><td>MemberType</td><td>Method</td></tr><tr><td>MetadataToken</td><td>100663382</td></tr><tr><td>Module</td><td>Microsoft.AspNetCore.Routing.dll</td></tr><tr><td>IsSecurityCritical</td><td>True</td></tr><tr><td>IsSecuritySafeCritical</td><td>False</td></tr><tr><td>IsSecurityTransparent</td><td>False</td></tr><tr><td>MethodHandle</td><td>System.RuntimeMethodHandle</td></tr><tr><td>Attributes</td><td>Public, Static, HideBySig</td></tr><tr><td>CallingConvention</td><td>Standard</td></tr><tr><td>ReturnType</td><td>Microsoft.AspNetCore.Builder.IApplicationBuilder</td></tr><tr><td>ReturnTypeCustomAttributes</td><td>Microsoft.AspNetCore.Builder.IApplicationBuilder</td></tr><tr><td>ReturnParameter</td><td>Microsoft.AspNetCore.Builder.IApplicationBuilder</td></tr><tr><td>IsCollectible</td><td>False</td></tr><tr><td>IsGenericMethod</td><td>False</td></tr><tr><td>IsGenericMethodDefinition</td><td>False</td></tr><tr><td>ContainsGenericParameters</td><td>False</td></tr><tr><td>MethodImplementationFlags</td><td>IL</td></tr><tr><td>IsAbstract</td><td>False</td></tr><tr><td>IsConstructor</td><td>False</td></tr><tr><td>IsFinal</td><td>False</td></tr><tr><td>IsHideBySig</td><td>True</td></tr><tr><td>IsSpecialName</td><td>False</td></tr><tr><td>IsStatic</td><td>True</td></tr><tr><td>IsVirtual</td><td>False</td></tr><tr><td>IsAssembly</td><td>False</td></tr><tr><td>IsFamily</td><td>False</td></tr><tr><td>IsFamilyAndAssembly</td><td>False</td></tr><tr><td>IsFamilyOrAssembly</td><td>False</td></tr><tr><td>IsPrivate</td><td>False</td></tr><tr><td>IsPublic</td><td>True</td></tr><tr><td>IsConstructedGenericMethod</td><td>False</td></tr><tr><td>CustomAttributes</td><td>[ [System.Runtime.CompilerServices.ExtensionAttribute()] ]</td></tr></tbody></table></div></details></td></tr><tr><td>Position</td><td><div class=\"dni-plaintext\"><pre>-1</pre></div></td></tr><tr><td>IsIn</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsLcid</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsOptional</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsOut</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsRetval</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>CustomAttributes</td><td><i>(empty)</i></td></tr></tbody></table></div></details></td></tr><tr><td>ReturnParameter</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.AspNetCore.Builder.IApplicationBuilder</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>ParameterType</td><td><span><a href=\"https://docs.microsoft.com/dotnet/api/microsoft.aspnetcore.builder.iapplicationbuilder?view=net-7.0\">Microsoft.AspNetCore.Builder.IApplicationBuilder</a></span></td></tr><tr><td>Name</td><td><div class=\"dni-plaintext\"><pre><null></pre></div></td></tr><tr><td>HasDefaultValue</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>DefaultValue</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code></code></span></summary><div><table><thead><tr></tr></thead><tbody></tbody></table></div></details></td></tr><tr><td>RawDefaultValue</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code></code></span></summary><div><table><thead><tr></tr></thead><tbody></tbody></table></div></details></td></tr><tr><td>MetadataToken</td><td><div class=\"dni-plaintext\"><pre>134217728</pre></div></td></tr><tr><td>Attributes</td><td><span>None</span></td></tr><tr><td>Member</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.AspNetCore.Builder.IApplicationBuilder UseRouting(Microsoft.AspNetCore.Builder.IApplicationBuilder)</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Name</td><td>UseRouting</td></tr><tr><td>DeclaringType</td><td>Microsoft.AspNetCore.Builder.EndpointRoutingApplicationBuilderExtensions</td></tr><tr><td>ReflectedType</td><td>Microsoft.AspNetCore.Builder.EndpointRoutingApplicationBuilderExtensions</td></tr><tr><td>MemberType</td><td>Method</td></tr><tr><td>MetadataToken</td><td>100663382</td></tr><tr><td>Module</td><td>Microsoft.AspNetCore.Routing.dll</td></tr><tr><td>IsSecurityCritical</td><td>True</td></tr><tr><td>IsSecuritySafeCritical</td><td>False</td></tr><tr><td>IsSecurityTransparent</td><td>False</td></tr><tr><td>MethodHandle</td><td>System.RuntimeMethodHandle</td></tr><tr><td>Attributes</td><td>Public, Static, HideBySig</td></tr><tr><td>CallingConvention</td><td>Standard</td></tr><tr><td>ReturnType</td><td>Microsoft.AspNetCore.Builder.IApplicationBuilder</td></tr><tr><td>ReturnTypeCustomAttributes</td><td>Microsoft.AspNetCore.Builder.IApplicationBuilder</td></tr><tr><td>ReturnParameter</td><td>Microsoft.AspNetCore.Builder.IApplicationBuilder</td></tr><tr><td>IsCollectible</td><td>False</td></tr><tr><td>IsGenericMethod</td><td>False</td></tr><tr><td>IsGenericMethodDefinition</td><td>False</td></tr><tr><td>ContainsGenericParameters</td><td>False</td></tr><tr><td>MethodImplementationFlags</td><td>IL</td></tr><tr><td>IsAbstract</td><td>False</td></tr><tr><td>IsConstructor</td><td>False</td></tr><tr><td>IsFinal</td><td>False</td></tr><tr><td>IsHideBySig</td><td>True</td></tr><tr><td>IsSpecialName</td><td>False</td></tr><tr><td>IsStatic</td><td>True</td></tr><tr><td>IsVirtual</td><td>False</td></tr><tr><td>IsAssembly</td><td>False</td></tr><tr><td>IsFamily</td><td>False</td></tr><tr><td>IsFamilyAndAssembly</td><td>False</td></tr><tr><td>IsFamilyOrAssembly</td><td>False</td></tr><tr><td>IsPrivate</td><td>False</td></tr><tr><td>IsPublic</td><td>True</td></tr><tr><td>IsConstructedGenericMethod</td><td>False</td></tr><tr><td>CustomAttributes</td><td>[ [System.Runtime.CompilerServices.ExtensionAttribute()] ]</td></tr></tbody></table></div></details></td></tr><tr><td>Position</td><td><div class=\"dni-plaintext\"><pre>-1</pre></div></td></tr><tr><td>IsIn</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsLcid</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsOptional</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsOut</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsRetval</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>CustomAttributes</td><td><i>(empty)</i></td></tr></tbody></table></div></details></td></tr><tr><td>IsCollectible</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsGenericMethod</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsGenericMethodDefinition</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>ContainsGenericParameters</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>MethodImplementationFlags</td><td><span>IL</span></td></tr><tr><td>IsAbstract</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsConstructor</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsFinal</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsHideBySig</td><td><div class=\"dni-plaintext\"><pre>True</pre></div></td></tr><tr><td>IsSpecialName</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsStatic</td><td><div class=\"dni-plaintext\"><pre>True</pre></div></td></tr><tr><td>IsVirtual</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsAssembly</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsFamily</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsFamilyAndAssembly</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsFamilyOrAssembly</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsPrivate</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsPublic</td><td><div class=\"dni-plaintext\"><pre>True</pre></div></td></tr><tr><td>IsConstructedGenericMethod</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>CustomAttributes</td><td><table><thead><tr><th><i>index</i></th><th>value</th></tr></thead><tbody><tr><td>0</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>[System.Runtime.CompilerServices.ExtensionAttribute()]</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Constructor</td><td>Void .ctor()</td></tr><tr><td>ConstructorArguments</td><td>[ ]</td></tr><tr><td>NamedArguments</td><td>[ ]</td></tr><tr><td>AttributeType</td><td>System.Runtime.CompilerServices.ExtensionAttribute</td></tr></tbody></table></div></details></td></tr></tbody></table></td></tr></tbody></table></div></details></td></tr></tbody></table></div></details></td></tr></tbody></table></td></tr></tbody></table></div></details><style>\r\n", + ".dni-code-hint {\r\n", + " font-style: italic;\r\n", + " overflow: hidden;\r\n", + " white-space: nowrap;\r\n", + "}\r\n", + ".dni-treeview {\r\n", + " white-space: nowrap;\r\n", + "}\r\n", + ".dni-treeview td {\r\n", + " vertical-align: top;\r\n", + " text-align: start;\r\n", + "}\r\n", + "details.dni-treeview {\r\n", + " padding-left: 1em;\r\n", + "}\r\n", + "table td {\r\n", + " text-align: start;\r\n", + "}\r\n", + "table tr { \r\n", + " vertical-align: top; \r\n", + " margin: 0em 0px;\r\n", + "}\r\n", + "table tr td pre \r\n", + "{ \r\n", + " vertical-align: top !important; \r\n", + " margin: 0em 0px !important;\r\n", + "} \r\n", + "table th {\r\n", + " text-align: start;\r\n", + "}\r\n", + "</style>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "#!aspnet\n", "\n", diff --git a/Docs/多语言笔记.6.1.共享变量.ipynb b/Docs/多语言笔记.6.1.共享变量.ipynb index 245a83f..e0a7c70 100644 --- a/Docs/多语言笔记.6.1.共享变量.ipynb +++ b/Docs/多语言笔记.6.1.共享变量.ipynb @@ -5,15 +5,78 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# 共享变量的使用" + "# 变量共享" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "使用 .NET 交互式内核,可以在单个笔记本中以多种语言编写代码。为了利用每种语言的不同优势,您会发现在它们之间共享数据很有用。即一种语言的变量,可以在其它语言中使用。\n", + "默认情况下,.NET Interactive 支持多种不同的语言,其中大多数语言都允许使用magic 命令`#!set` 和 `#!shared` 进行共享。" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 各语言对变量共享的支持" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "| 语言 | 变量共享 |\n", + "| ---- | ---- |\n", + "| C# | 支持 |\n", + "| F# | 支持 |\n", + "| PowerShell | 支持 |\n", + "| JavaScript | 支持 |\n", + "| SQL | 支持 |\n", + "| KQL | 支持 |\n", + "| Python | 支持 |\n", + "| R | 支持 |\n", + "| HTML | 不支持 |\n", + "| Mermaid | 不支持 |" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 查看、管理全部变量方法" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 简单示例:C# 运行中的变量,被其它语言共享。" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "//定义变量:存储网关\n", + "string getway = \"192.168.1.1\";" ] }, { - "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ - "## 全局设置" + "## PowerShell 中使用" ] }, { @@ -21,21 +84,69 @@ "execution_count": null, "metadata": { "dotnet_interactive": { - "language": "csharp" + "language": "pwsh" }, "polyglot_notebook": { - "kernelName": "csharp" + "kernelName": "pwsh" } }, "outputs": [], "source": [ - "// 默认包源\n", - "#i \"https://api.nuget.org/v3/index.json\"\n", + "# Poweshell中使用 前面C#单元中定义的变量\n", + "# 特别注意:因为PS中变量名必须以$开头,所以在命令中 name 参数名,在PS中使用时必须加$前辍\n", "\n", - "//Nuget 包引用\n", - "#r \"nuget: Microsoft.DotNet.Interactive.ExtensionLab,*-*\"\n", + "#!set --value @csharp:getway --name gw\n", + "\n", + "Write-Host $gw\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## F# 中使用" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "dotnet_interactive": { + "language": "fsharp" + }, + "polyglot_notebook": { + "kernelName": "fsharp" + } + }, + "outputs": [], + "source": [ + "#!set --value @csharp:getway --name getway\n", "\n", - "//全局变量" + "Console.WriteLine(getway)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 在javascrip中使用" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "dotnet_interactive": { + "language": "javascript" + }, + "polyglot_notebook": { + "kernelName": "javascript" + } + }, + "outputs": [], + "source": [ + "#!set --value @csharp:getway --name getway\n", + "console.log(getway);\n" ] } ],