{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## 初始化\n", "这是全局共用文件,包括Nuget包引用、全局类库引用、全局文件引用、全局命名空间引用、全局变量、全局方法、全局类定义等功能。\n", "\n", "在业务笔记中引用,执行其它单元格之前先执行一次。" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "polyglot_notebook": { "kernelName": "csharp" } }, "outputs": [ { "data": { "text/html": [ "
Installed Packages
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "配置文件根目录:d:\\软件项目\\学习项目\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.Core\n", "配置文件根目录:d:\\软件项目\\学习项目\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.Core\n", "启动WebApi项目...\n", "程序[d:\\软件项目\\学习项目\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.WebApp\\HttpClientStudy.WebApp.exe]已在新的命令行窗口执行。如果未出现新命令行窗口,可能是程序错误造成窗口闪现!\n", "已启动WebApi项目,保持窗口打开状态!\n", "初始化完成!\n" ] } ], "source": [ "//全局设置,行运行一次,为后续准备\n", "#r \"nuget:System.Net.Http.Json\"\n", "#r \"nuget:Microsoft.Net.Http.Headers\"\n", "#r \"nuget:Microsoft.Extensions.Http\"\n", "#r \"nuget:Microsoft.Extensions.DependencyInjection\"\n", "#r \"nuget:Microsoft.Extensions.Logging\" \n", "#r \"nuget:Microsoft.Extensions.Logging.Console\"\n", "#r \"nuget:Polly\"\n", "#r \"nuget:Microsoft.Extensions.Http.Polly\"\n", "#r \"nuget:Refit, 8.0.0\" \n", "#r \"nuget:Refit.HttpClientFactory, 8.0.0\"\n", "#r \"./Publish/HttpClientStudy.Model/HttpClientStudy.Model.dll\"\n", "#r \"./Publish/HttpClientStudy.Core/HttpClientStudy.Core.dll\"\n", "\n", "//全局命名空间引用\n", "global using System;\n", "global using System.Buffers;\n", "global using System.Collections;\n", "global using System.Collections.Concurrent;\n", "global using System.Diagnostics;\n", "global using System.IO;\n", "global using System.IO.Enumeration;\n", "global using System.Linq;\n", "global using System.Linq.Expressions;\n", "global using System.Net;\n", "global using System.Net.Http;\n", "global using System.Net.Http.Json;\n", "global using System.Text;\n", "global using System.Threading;\n", "global using System.Threading.Tasks;\n", "\n", "global using Microsoft.Extensions.DependencyInjection;\n", "global using Microsoft.Extensions.DependencyInjection.Extensions;\n", "global using Microsoft.Extensions.Logging;\n", "global using Microsoft.Extensions.Logging.Console;\n", "global using Microsoft.Extensions.Http.Logging;\n", "\n", "global using Polly;\n", "global using Polly.NoOp;\n", "global using Polly.Simmy;\n", "global using Polly.Retry;\n", "global using Polly.Hedging;\n", "global using Polly.Timeout;\n", "global using Polly.Bulkhead;\n", "global using Polly.Fallback;\n", "global using Polly.RateLimit;\n", "global using Polly.CircuitBreaker;\n", "global using Polly.Utilities;\n", "global using Polly.Extensions;\n", "global using Polly.Wrap;\n", "global using Polly.Registry;\n", "global using Polly.Telemetry;\n", "global using Polly.Extensions.Http;\n", "\n", "global using Refit;\n", "//global using Refit.HttpClientFactory;\n", "\n", "global using HttpClientStudy.Model;\n", "global using HttpClientStudy.Config;\n", "global using HttpClientStudy.Core;\n", "global using HttpClientStudy.Core.Utilities;\n", "\n", "//全局变量\n", "var webApiBaseUrl = WebApiConfigManager.GetWebApiConfig().BaseUrl;\n", "var workDir = Environment.CurrentDirectory;\n", "var fullPath = System.IO.Path.GetFullPath(\"./Publish/HttpClientStudy.WebApp/HttpClientStudy.WebApp.exe\", workDir);\n", "//fullPath.Display();\n", "\n", "//全局共享变量\n", "var global_api_config = HttpClientStudy.Config.WebApiConfigManager.GetWebApiConfig();\n", "var global_ips = Dns.GetHostAddresses(global_api_config.Host);\n", "var global_queryIp = global_ips.First().ToString();\n", "if(global_api_config.Host.Contains(\"localhost\"))\n", "{\n", " global_queryIp = \"127.0.0.1\";\n", "}\n", "var global_default_page = $\"{global_api_config.PathBase}/Normal/GetAllAccounts\";\n", "\n", "//全局共享静态 HttpClient 对象\n", "public static HttpClient SharedClient = new HttpClient(new SocketsHttpHandler(){ PooledConnectionIdleTimeout = TimeSpan.FromSeconds(30)})\n", "{\n", " BaseAddress = new Uri(WebApiConfigManager.GetWebApiConfig().BaseUrl),\n", "};\n", "\n", "//启动已发布的WebApi项目\n", "{\n", " Console.WriteLine(\"启动WebApi项目...\");\n", " var global_netstat_filter = $\"{global_queryIp}:{global_api_config.Port}\";\n", " var global_webapi_file = Path.GetFullPath(\"./Publish/HttpClientStudy.WebApp/HttpClientStudy.WebApp.exe\", Environment.CurrentDirectory); \n", " var message = AppUtility.RunWebApiExeFile(global_webapi_file);\n", " Console.WriteLine(message);\n", " Console.WriteLine(\"已启动WebApi项目,保持窗口打开状态!\");\n", "}\n", "\n", "Console.WriteLine(\"初始化完成!\");" ] } ], "metadata": { "kernelspec": { "display_name": ".NET (C#)", "language": "C#", "name": ".net-csharp" }, "polyglot_notebook": { "kernelInfo": { "defaultKernelName": "csharp", "items": [ { "aliases": [], "languageName": "csharp", "name": "csharp" } ] } } }, "nbformat": 4, "nbformat_minor": 2 }