diff --git "a/\345\217\266\346\235\250/2024-05-18\345\210\233\345\273\272\346\226\260\347\232\204.NETCore\351\241\271\347\233\256.md" "b/\345\217\266\346\235\250/2024-05-18\345\210\233\345\273\272\346\226\260\347\232\204.NETCore\351\241\271\347\233\256.md" new file mode 100644 index 0000000000000000000000000000000000000000..24b781f945447d7b93fc142e49a3d35dae2d89bf --- /dev/null +++ "b/\345\217\266\346\235\250/2024-05-18\345\210\233\345\273\272\346\226\260\347\232\204.NETCore\351\241\271\347\233\256.md" @@ -0,0 +1,34 @@ +### 创建新的.NETCore项目 +在VS Code中打开终端,执行以下命令创建一个新的.NETCore项目: +```bash +dotnet new console -n MyProject +``` + +### 创建新的ASP.NETCore项目 +要创建ASP.NETCore Web应用程序,可以使用以下命令: +``` +dotnet new webapi -n MyWebApi +``` + +### 调试.NETCore应用程序 +在VS Code中打开项目文件夹,按下`F5`启动调试。你可以在`.vscode`文件夹中配置调试器设置。 + +### 编写控制器和路由 +创建一个控制器类,并使用路由属性定义路由: +``` +[Route("api/[controller]")] +public class MyController : ControllerBase +{ + [HttpGet] + public ActionResult Get() + { + return "Hello, World!"; + } +} +``` + +### 运行ASP.NETCore应用 +使用以下命令运行ASP.NETCore应用程序: +``` +dotnet run +``` \ No newline at end of file diff --git "a/\345\217\266\346\235\250/2024-05-21\345\210\233\345\273\272\344\270\200\344\270\252\346\226\260\347\232\204ASP.NETCore\351\241\271\347\233\256.md" "b/\345\217\266\346\235\250/2024-05-21\345\210\233\345\273\272\344\270\200\344\270\252\346\226\260\347\232\204ASP.NETCore\351\241\271\347\233\256.md" new file mode 100644 index 0000000000000000000000000000000000000000..512eff1a55b21e5c4c8b0dff7a576069c6cfaf07 --- /dev/null +++ "b/\345\217\266\346\235\250/2024-05-21\345\210\233\345\273\272\344\270\200\344\270\252\346\226\260\347\232\204ASP.NETCore\351\241\271\347\233\256.md" @@ -0,0 +1,33 @@ +## 创建一个新的ASP.NETCore项目 +1. 在VS Code中打开终端,执行以下命令创建一个新的ASP.NETCore Web API项目: +```bash +dotnet new webapi -n MyWebApi +``` + +2. 进入项目文件夹: +```bash +cd MyWebApi +``` + +## 编写和调试ASP.NETCore Web API +1. 打开`Controllers`文件夹中的`WeatherForecastController.cs`文件,查看默认生成的控制器代码。 +2. 在`WeatherForecastController.cs`文件中,可以自定义控制器和路由,例如: +```csharp +[Route("api/[controller]")] +[ApiController] +public class WeatherForecastController : ControllerBase +{ + [HttpGet] + public IEnumerable Get() + { + // 返回一组虚构的天气数据 + } +} +``` + +3. 使用终端运行应用程序: +```bash +dotnet run +``` + +4. 在浏览器中访问`https://localhost:5001/api/weatherforecast`,或者使用工具如Postman发送GET请求来测试API的功能。 \ No newline at end of file diff --git "a/\345\217\266\346\235\250/2024-05-22\344\276\235\350\265\226\346\263\250\345\205\245\357\274\210Dependency Injection\357\274\211.md" "b/\345\217\266\346\235\250/2024-05-22\344\276\235\350\265\226\346\263\250\345\205\245\357\274\210Dependency Injection\357\274\211.md" new file mode 100644 index 0000000000000000000000000000000000000000..212397b123b687012a01584aba5c311ebd445099 --- /dev/null +++ "b/\345\217\266\346\235\250/2024-05-22\344\276\235\350\265\226\346\263\250\345\205\245\357\274\210Dependency Injection\357\274\211.md" @@ -0,0 +1,41 @@ +## 什么是依赖注入(Dependency Injection) +依赖注入是一种设计模式,用于管理和解决类之间的依赖关系。通过依赖注入,可以实现将对象的依赖项以参数的形式传递给对象,而不是对象自己去创建和管理这些依赖项。 + +## 在ASP.NETCore中进行依赖注入 +在ASP.NET Core中,依赖注入是框架的核心特性,用于实现组件的松耦合性和可测试性。ASP.NET Core提供了内置的依赖注入容器来管理这些依赖关系。 + +## 在VS Code中配置依赖注入 +1. 在ASP.NET Core Web API项目中,创建一个新的服务类,例如`MyService.cs`,并在类中定义需要注入的服务逻辑。 +2. 在`Startup.cs`文件中,使用依赖注入容器注册这个服务: +```csharp +services.AddScoped(); +``` +3. 在`Controllers`中的控制器中通过构造函数注入服务: +```csharp +private readonly IMyService _myService; + +public MyController(IMyService myService) +{ + _myService = myService; +} +``` +4. 现在`MyController`中就可以使用`_myService`来调用`MyService`中的服务逻辑。 + + +## 注册中间件 +在.NET Core中,我们可以在Startup.cs文件中注册并配置中间件。以下是一个简单的示例: +``` +public class Startup +{ + public void Configure(IApplicationBuilder app) + { + app.UseMyMiddleware(); + } +} + +``` +#### 中间件的执行顺序 +在.NET中,中间件的执行顺序非常重要。我们可以通过在Configure方法中的Use方法的顺序来确定中间件的执行顺序。例如,先注册的中间件会先执行。 + +#### 中间件的功能 +中间件可以用于执行各种任务,比如处理HTTP请求、执行身份验证、跨域请求处理、日志记录等。通过创建自定义的中间件,我们可以根据特定的需求来扩展应用程序的功能。 \ No newline at end of file diff --git "a/\345\217\266\346\235\250/2024-05-24\345\272\224\347\224\250\347\250\213\345\272\217\347\232\204\345\220\257\345\212\250.md" "b/\345\217\266\346\235\250/2024-05-24\345\272\224\347\224\250\347\250\213\345\272\217\347\232\204\345\220\257\345\212\250.md" new file mode 100644 index 0000000000000000000000000000000000000000..aefea01af6c495a5dda28210279d1164026850d0 --- /dev/null +++ "b/\345\217\266\346\235\250/2024-05-24\345\272\224\347\224\250\347\250\213\345\272\217\347\232\204\345\220\257\345\212\250.md" @@ -0,0 +1,70 @@ +### 应用程序的启动 +创建api项目 +``` +dotnet webapi -n MyWebApi +``` + + +Program.cs中 +```c# +namespace MyWebApi; +public class Program{ + //这是Program类的Main方法,是应用程序的入口点。当应用程序启动时,会执行Main方法中的代码 + public static void Main(string[] args){ + //调用CreateWebHostBuilder方法创建IHostBuilder,然后构建IHost并运行应用程序。 + CreateWebHostBuilder(args).Build().Run(); + } + +// /这是一个静态方法,用于创建IHostBuilder实例,配置应用程序的主机。 + public static IHostBuilder CreateWebHostBuilder(string[] args) + { + //创建默认的主机构建器,并配置WebHost的默认设置。UseStartup()指定了启动应用程序时要使用的Startup类。 + return Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(builder=>{ + builder.UseStartup(); + }); + } +} +``` +Startup.cs +```c# +namespace MyWebApi; +public class Startup{ + //这是一个公共方法,用于配置应用程序的服务。IServiceCollection参数services是一个容器,用于注册应用程序中的服务。 + public void ConfigureServices(IServiceCollection services){ + //这行代码注册控制器服务。AddControllers()方法告诉应用程序使用控制器来处理HTTP请求。 + services.AddControllers(); + } + + //用于配置应用程序的请求处理管道。IApplicationBuilder参数app表示应用程序的请求处理管道。 + public void Configure(IApplicationBuilder app){ + //这行代码启用路由中间件。路由中间件用于确定如何将传入的HTTP请求映射到应用程序中的端点(即控制器的方法) + app.UseRouting(); + //这行代码配置端点路由。MapControllers()方法告诉应用程序将请求映射到控制器的动作方法。 + app.UseEndpoints(endPoint=>{ + endPoint.MapControllers(); + }); + +} +} + +``` + +/Controllers/BookControllers.cs +```c# +using Microsoft.AspNetCore.Mvc; +namespace MyWebApi; +//使用[Route]属性指定路由,[Route("book")]来指定整个控制器的路由前缀为/book +[Route("/book")] +public class BookController:Controller{ + public IActionResult Index(){ + return Ok("886"); + } +} +``` + +api.http + +``` +### +GET http://localhost:5015/book HTTP/1.1 +``` \ No newline at end of file