From f9cf5681b52040ffbdb81fce0f8e8ed0087c7427 Mon Sep 17 00:00:00 2001
From: 15959855625 <2575863563@qq.com>
Date: Sun, 26 May 2024 21:02:34 +0800
Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E6=AC=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...33\345\273\272\351\241\271\347\233\256.md" | 25 +++++++
...1-\344\270\255\351\227\264\344\273\266.md" | 64 ++++++++++++++++++
...35\350\265\226\346\263\250\345\205\245.md" | 15 +++++
...50\345\205\245\344\273\243\347\240\201.md" | 67 +++++++++++++++++++
4 files changed, 171 insertions(+)
create mode 100644 "\351\202\271\347\246\217\347\247\221/20240520-\345\210\233\345\273\272\351\241\271\347\233\256.md"
create mode 100644 "\351\202\271\347\246\217\347\247\221/20240521-\344\270\255\351\227\264\344\273\266.md"
create mode 100644 "\351\202\271\347\246\217\347\247\221/20240523-\344\276\235\350\265\226\346\263\250\345\205\245.md"
create mode 100644 "\351\202\271\347\246\217\347\247\221/20240524-\344\276\235\350\265\226\346\263\250\345\205\245\344\273\243\347\240\201.md"
diff --git "a/\351\202\271\347\246\217\347\247\221/20240520-\345\210\233\345\273\272\351\241\271\347\233\256.md" "b/\351\202\271\347\246\217\347\247\221/20240520-\345\210\233\345\273\272\351\241\271\347\233\256.md"
new file mode 100644
index 0000000..bda400f
--- /dev/null
+++ "b/\351\202\271\347\246\217\347\247\221/20240520-\345\210\233\345\273\272\351\241\271\347\233\256.md"
@@ -0,0 +1,25 @@
+### 创建解决方案
+1. 首先,创建一个空白解决方案来放置类库项目。 解决方案用作一个或多个项目的容器。 将其他相关项目添加到同一个解决方案中。
+2. 启动 Visual Studio Code。
+3. 从主菜单中选择“文件”>“打开文件夹”(在 macOS 上为“打开...”)
+4. 在“打开文件夹”对话框中,创建“ClassLibraryProjects”文件夹,然后单击“选择文件夹”(在 macOS 上为“打开”)。
+5. 在主菜单中选择“视图”>“终端”,从 Visual Studio Code 中打开“终端” 。“终端”在“ClassLibraryProjects”文件夹中连同命令提示符一起打开。
+6. 在“终端”中输入以下命令:**dotnet new sln**
+
+### 创建类库项目
+将名为“StringLibrary”的新 .NET 类库项目添加到解决方案
+1. 在终端中,运行以下命令创建库项目:**dotnet new classlib -o StringLibrary**
+2. 运行以下命令,向解决方案添加库项目:**dotnet sln add StringLibrary/StringLibrary.csproj**
+3. 运行以下命令以生成解决方案,并验证项目是否正确编译:
+
+### 向解决方案添加控制台应用
+添加使用类库的控制台应用程序。
+1. 在终端中,运行以下命令创建控制台应用项目:**dotnet new console -o ShowCase**
+2. 运行以下命令,向解决方案添加控制台应用项目:**dotnet sln add ShowCase/ShowCase.csproj**
+
+### 添加项目引用
+最初,新的控制台应用项目无权访问类库。 若要允许该项目调用类库中的方法,可以创建对类库项目的项目引用。
+1. 运行下面的命令:**dotnet add ShowCase/ShowCase.csproj reference StringLibrary/StringLibrary.csproj**
+
+### 运行应用
+1. 在终端中运行以下命令:**dotnet run --project ShowCase/ShowCase.csproj**
\ No newline at end of file
diff --git "a/\351\202\271\347\246\217\347\247\221/20240521-\344\270\255\351\227\264\344\273\266.md" "b/\351\202\271\347\246\217\347\247\221/20240521-\344\270\255\351\227\264\344\273\266.md"
new file mode 100644
index 0000000..1a3ac73
--- /dev/null
+++ "b/\351\202\271\347\246\217\347\247\221/20240521-\344\270\255\351\227\264\344\273\266.md"
@@ -0,0 +1,64 @@
+### 一、解决方案和项目之间的关系
+
+1. 编译或打包解决方案时,会同时编译或打包其下所有项目
+2. 如果运行解决方案,会按编排的(指定的启动项目),分别编译该项目
+3. 在根目录下编译项目会一起编译解决方案,而在项目目录下编译却只会编译该项目
+
+### 二、在项目中引用另一个项目
+
+```js
+dotnet add.\MyApi\ reference .\ApiDemo\
+// 在MyApi项目中引用ApiDemo项目
+// 则在MyApi.csproj文件中会出现以下代码
+
+
+
+```
+
+### 三、添加依赖包
+
+```js
+dotnet add .\MyApi\ package package_name
+// 则在MyApi.csproj文件中会出现以下代码:
+
+
+// 也可以根据MyApi.csproj文件还原包
+dotnet restore
+```
+
+### 四、编译一个简单的 api 请求
+
+1. 编译代码
+
+```js
+// 在program.cs中
+// 使用了 MapGet 方法来指定了一个 GET 请求的路由路径为 "/api/users"
+app.MapGet("/api/users",()=>{
+ // 创建了一个 List 类型的列表对象,用于存储动态类型的元素
+ var list = new List();
+ list.Add(new{
+ Id=1,
+ });
+ list.Add(new{
+ Id=2,
+ });
+ return list;
+});
+```
+
+### 五、中间件
+
+1. 添加中间件
+
+```js
+// 接受 HttpContext 对象 ctx 和一个 next 委托作为参数
+app.Use(async (ctx, next) => {
+ // 创建变量forecast,其中存储包含1到10的整数序列
+ // Enumerable.Range 方法用于生成指定范围内的整数序列
+ var forecast = Enumerable.Range(1, 10);
+ // 调用下一个中间件或终结点,使得控制权传递给下一个中间件或请求处理终结点
+ await next();
+ // 调用下一个中间件或终结点,使得控制权传递给下一个中间件或请求处理终结点
+ ctx.Response.WriteAsync("C929星球");
+});
+```
\ No newline at end of file
diff --git "a/\351\202\271\347\246\217\347\247\221/20240523-\344\276\235\350\265\226\346\263\250\345\205\245.md" "b/\351\202\271\347\246\217\347\247\221/20240523-\344\276\235\350\265\226\346\263\250\345\205\245.md"
new file mode 100644
index 0000000..2f6ff12
--- /dev/null
+++ "b/\351\202\271\347\246\217\347\247\221/20240523-\344\276\235\350\265\226\346\263\250\345\205\245.md"
@@ -0,0 +1,15 @@
+### 依赖注入
+依赖注入是一种新的设计模式,通过正确使用依赖注入的相关技术,可以降低系统耦合度,增加系统的可扩展性。
+
+### 实例的生命周期
+.NET Core DI 为我们提供的实例生命周其包括三种:
+- Transient: 每一次GetService都会创建一个新的实例
+- Scoped: 在同一个Scope内只初始化一个实例 ,可以理解为( 每一个 request级别只创建一个实例,同一个http request会在一个 scope内)
+- Singleton :整个应用程序生命周期以内只创建一个实例
+### 方法
+- `Main` 方法:这是应用程序的入口点。它调用 `CreateHostBuilder(args).Build().Run()` 来初始化和启动 Web 主机。
+- `CreateHostBuilder` 方法:配置 Web 主机构建器。它使用 `WebHost.CreateDefaultBuilder(args)` 创建默认的构建器,该构建器加载配置(如 `appsettings.json`)并设置日志记录等。然后,它调用 `.UseStartup()` 来指定应用程序启动时使用的启动类。
+- `Startup` 类:定义了 ASP.NET Core 应用程序的启动逻辑。
+- `ConfigureServices` 方法:在服务容器中注册应用程序所需的服务和依赖项。`services.AddControllers();` 添加了 MVC 控制器服务,这是 ASP.NET Core MVC 框架的核心部分。
+- `Configure` 方法:配置应用程序的请求处理管道。`app.UseRouting()` 启用路由中间件,它是处理请求 URL 并将其与应用程序中的路由匹配的关键组件。`app.UseEndpoints(endpoints => { endpoints.MapControllers(); })` 设置终结点路由中间件,它负责将请求映射到 MVC 控制器。
+- `MapControllers` 方法:一个扩展方法,它告诉终结点路由中间件如何将请求映射到应用程序中的控制器。
\ No newline at end of file
diff --git "a/\351\202\271\347\246\217\347\247\221/20240524-\344\276\235\350\265\226\346\263\250\345\205\245\344\273\243\347\240\201.md" "b/\351\202\271\347\246\217\347\247\221/20240524-\344\276\235\350\265\226\346\263\250\345\205\245\344\273\243\347\240\201.md"
new file mode 100644
index 0000000..9e8ed23
--- /dev/null
+++ "b/\351\202\271\347\246\217\347\247\221/20240524-\344\276\235\350\265\226\346\263\250\345\205\245\344\273\243\347\240\201.md"
@@ -0,0 +1,67 @@
+### 入口程序 Program.cs
+```c#
+using Microsoft.AspNetCore;
+
+namespace Admin2024.API;
+
+public class Program{
+ // main 方法: 这是应用程序的入口点
+ public static void Main(string []args){
+ // 初始化和启动 Web 主机
+ CreateWebHostBuilder(args).Build().Run();
+ }
+
+ // 配置Web主机构建器
+ private static IWebHostBuilder CreateWebHostBuilder(string[] args)
+ {
+ // 创建默认的构建器
+ return WebHost.CreateDefaultBuilder(args).UseStartup();
+ }
+}
+```
+
+### 启动类 Startup.cs
+```c#
+ namespace Admin2024;
+// Startup 类 : 定义了asp.net core 应用程序的启动逻辑
+public class Startup{
+ ///
+ /// 在服务容器中注册应用程序所需的服务和依赖项(注册服务的中间件)
+ ///
+ ///
+ public void ConfigureServices(IServiceCollection services){
+ // 添加了 MVC 控制器服务,这是 mvc 核心部分
+ services.AddControllers();
+ }
+
+ ///
+ /// 配置应用程序的请求处理管道( 注册服务(依赖注入的服务) )
+ ///
+ ///
+ public void Configure(IApplicationBuilder app){
+ // 启动路由中间件
+ app.UseRouting();
+ // 设置终结点路由中间件,它负责将请求映射到 MVC 控制器
+ // MapControllers() :一个扩展方法,它告诉终结点路由中间件如何将请求映射到应用程序中的控制器
+ app.UseEndpoints(end=>end.MapControllers());
+ }
+}
+```
+
+### 控制器
+```c#
+using Microsoft.AspNetCore.Mvc;
+namespace Admin2024.API.Controllers
+{
+ [ApiController]
+ [Route("[controller]")]
+ public class BlogController : ControllerBase
+ {
+ [HttpGet]
+ public IActionResult index(){
+ return Ok("神罗天怔!");
+ }
+ }
+}
+
+```
\ No newline at end of file
--
Gitee