当前位置: 首页 > wzjs >正文

襄阳建设网站展示型建站模板平台

襄阳建设网站,展示型建站模板平台,河北沙河市建设局网站,嘉兴手机建站模板1. 依赖注入(Dependency Injection) 技术知识:依赖注入是一种设计模式,它允许将对象的依赖关系从对象本身中分离出来,通过构造函数、属性或方法参数等方式注入到对象中。这样可以提高代码的可测试性、可维护性和可扩展…

1. 依赖注入(Dependency Injection)

  • 技术知识:依赖注入是一种设计模式,它允许将对象的依赖关系从对象本身中分离出来,通过构造函数、属性或方法参数等方式注入到对象中。这样可以提高代码的可测试性、可维护性和可扩展性。
  • 案例:在一个简单的后台管理系统中,有一个用户服务接口 IUserService 和其实现类 UserService。通过依赖注入,我们可以将 UserService 注入到控制器中。

    dotnet-core-dependency-injection.NET Core 依赖注入示例

    生成 Program.cs

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;// 定义用户服务接口
public interface IUserService
{string GetUserName();
}// 实现用户服务接口
public class UserService : IUserService
{public string GetUserName(){return "John Doe";}
}// 定义用户控制器
public class UserController
{private readonly IUserService _userService;public UserController(IUserService userService){_userService = userService;}public string GetUser(){return _userService.GetUserName();}
}var builder = WebApplication.CreateBuilder(args);// 注册服务
builder.Services.AddScoped<IUserService, UserService>();var app = builder.Build();app.Run(async context =>
{var serviceProvider = app.Services;var userController = serviceProvider.GetRequiredService<UserController>();var userName = userController.GetUser();await context.Response.WriteAsync($"User Name: {userName}");
});app.Run();

2. 中间件(Middleware)

  • 技术知识:中间件是处理 HTTP 请求和响应的组件,它们按顺序依次执行,可以对请求进行预处理,也可以对响应进行后处理。
  • 案例:创建一个简单的日志中间件,记录每个请求的信息。
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using System;
using System.Threading.Tasks;// 定义日志中间件
public class LoggingMiddleware
{private readonly RequestDelegate _next;public LoggingMiddleware(RequestDelegate next){_next = next;}public async Task InvokeAsync(Microsoft.AspNetCore.Http.HttpContext context){Console.WriteLine($"Request received at {DateTime.Now}: {context.Request.Path}");await _next(context);Console.WriteLine($"Response sent at {DateTime.Now}");}
}var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();// 使用日志中间件
app.UseMiddleware<LoggingMiddleware>();app.Run(async context =>
{await context.Response.WriteAsync("Hello, World!");
});app.Run();

3. 路由(Routing)

  • 技术知识:路由是将 HTTP 请求映射到相应的处理程序(如控制器的动作方法)的过程。
  • 案例:创建一个简单的控制器,并使用路由来处理不同的请求。
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;// 定义控制器
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{[HttpGet]public IActionResult Get(){return Ok("This is a weather forecast.");}
}var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();var app = builder.Build();app.UseRouting();app.UseEndpoints(endpoints =>
{endpoints.MapControllers();
});app.Run();

4. 实体框架核心(Entity Framework Core)

  • 技术知识:Entity Framework Core 是一个跨平台的对象关系映射(ORM)框架,它允许开发人员使用面向对象的方式操作数据库。
  • 案例:创建一个简单的数据库上下文和实体类,并进行数据的增删改查操作。
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;// 定义实体类
public class Blog
{public int BlogId { get; set; }public string Url { get; set; }public List<Post> Posts { get; } = new List<Post>();
}public class Post
{public int PostId { get; set; }public string Title { get; set; }public string Content { get; set; }public int BlogId { get; set; }public Blog Blog { get; set; }
}// 定义数据库上下文
public class BloggingContext : DbContext
{public DbSet<Blog> Blogs { get; set; }public DbSet<Post> Posts { get; set; }protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;");}
}class Program
{static void Main(){using (var db = new BloggingContext()){// 添加博客db.Blogs.Add(new Blog { Url = "http://blogs.msdn.com/adonet" });var count = db.SaveChanges();Console.WriteLine("{0} records saved to database", count);// 查询博客var blogs = db.Blogs.OrderBy(b => b.Url).ToList();foreach (var blog in blogs){Console.WriteLine("Blog: {0}", blog.Url);}}}
}

5. 认证和授权(Authentication and Authorization)

  • 技术知识:认证是验证用户身份的过程,授权是确定用户是否有权限访问特定资源的过程。
  • 案例:使用 JWT(JSON Web Token)进行认证和授权。
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.IdentityModel.Tokens;
using System.Text;var builder = WebApplication.CreateBuilder(args);// 添加 JWT 认证服务
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options =>{options.TokenValidationParameters = new TokenValidationParameters{ValidateIssuer = true,ValidateAudience = true,ValidateLifetime = true,ValidateIssuerSigningKey = true,ValidIssuer = "YourIssuer",ValidAudience = "YourAudience",IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("YourSecretKey"))};});// 添加授权服务
builder.Services.AddAuthorization(options =>
{options.FallbackPolicy = new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build();
});builder.Services.AddControllers();var app = builder.Build();app.UseAuthentication();
app.UseAuthorization();app.MapControllers();app.Run();

6. 配置管理(Configuration Management)

  • 技术知识:配置管理允许将应用程序的配置信息(如数据库连接字符串、API 密钥等)与代码分离,方便在不同环境中进行配置。

  • 案例:使用 appsettings.json 文件进行配置管理。

Program.cs

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;var builder = WebApplication.CreateBuilder(args);// 读取配置文件
var configuration = builder.Configuration;
var connectionString = configuration.GetConnectionString("DefaultConnection");// 可以使用 connectionString 进行数据库连接等操作var app = builder.Build();app.Run(async context =>
{await context.Response.WriteAsync($"Connection String: {connectionString}");
});app.Run();

appsettings.json

{"ConnectionStrings": {"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;"},"Logging": {"LogLevel": {"Default": "Information","Microsoft.AspNetCore": "Warning"}},"AllowedHosts": "*"
}

7. 日志记录(Logging)

  • 技术知识:日志记录是记录应用程序运行时信息的过程,有助于调试和监控应用程序。
  • 案例:使用内置的日志记录器记录信息。
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;var builder = WebApplication.CreateBuilder(args);// 添加日志服务
builder.Logging.AddConsole();var app = builder.Build();var logger = app.Services.GetRequiredService<ILogger<Program>>();
logger.LogInformation("Application started.");app.Run(async context =>
{logger.LogInformation("Request received.");await context.Response.WriteAsync("Hello, World!");logger.LogInformation("Response sent.");
});app.Run();

8. 异步编程(Asynchronous Programming)

  • 技术知识:异步编程允许应用程序在执行耗时操作(如数据库查询、网络请求等)时不阻塞线程,提高应用程序的性能和响应能力。
  • 案例:使用 async 和 await 关键字进行异步数据库查询。
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;var builder = WebApplication.CreateBuilder(args);// 添加日志服务
builder.Logging.AddConsole();var app = builder.Build();var logger = app.Services.GetRequiredService<ILogger<Program>>();
logger.LogInformation("Application started.");app.Run(async context =>
{logger.LogInformation("Request received.");await context.Response.WriteAsync("Hello, World!");logger.LogInformation("Response sent.");
});app.Run();

9. 单元测试(Unit Testing)

  • 技术知识:单元测试是对应用程序中的最小可测试单元(如方法、类等)进行测试的过程,有助于确保代码的正确性和可维护性。
  • 案例:使用 xUnit 框架对一个简单的服务进行单元测试。
using Xunit;// 定义一个简单的服务
public class CalculatorService
{public int Add(int a, int b){return a + b;}
}public class CalculatorServiceTests
{[Fact]public void Add_TwoNumbers_ReturnsSum(){// Arrangevar calculator = new CalculatorService();int a = 2;int b = 3;// Actint result = calculator.Add(a, b);// AssertAssert.Equal(5, result);}
}

10. Web API 开发

  • 技术知识:Web API 是一种允许不同应用程序之间进行通信的接口,通常使用 HTTP 协议进行数据传输。
  • 案例:创建一个简单的 Web API 控制器,提供数据查询和添加功能。
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using System.Collections.Generic;// 定义数据模型
public class Product
{public int Id { get; set; }public string Name { get; set; }
}// 定义控制器
[ApiController]
[Route("api/[controller]")]
public class ProductsController : ControllerBase
{private static List<Product> _products = new List<Product>();[HttpGet]public IActionResult Get(){return Ok(_products);}[HttpPost]public IActionResult Post([FromBody] Product product){_products.Add(product);return CreatedAtAction(nameof(Get), new { id = product.Id }, product);}
}var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();var app = builder.Build();app.UseRouting();app.UseEndpoints(endpoints =>
{endpoints.MapControllers();
});app.Run();


文章转载自:

http://NEAqXcLq.yLdgw.cn
http://SIDnpOnD.yLdgw.cn
http://dzSRTDTc.yLdgw.cn
http://gzd715J9.yLdgw.cn
http://MDK6KGaO.yLdgw.cn
http://MvS3KWvh.yLdgw.cn
http://Nf8gmZYZ.yLdgw.cn
http://eWnVDEo0.yLdgw.cn
http://QYQZe6nw.yLdgw.cn
http://N31Dz8YI.yLdgw.cn
http://bvArZqch.yLdgw.cn
http://LNoWMtfR.yLdgw.cn
http://tJdceumh.yLdgw.cn
http://fax62xIs.yLdgw.cn
http://OIabPJTb.yLdgw.cn
http://iZ1R0q75.yLdgw.cn
http://eQu1yH3W.yLdgw.cn
http://b6tsNiNi.yLdgw.cn
http://siXIwa5b.yLdgw.cn
http://ceUGlqI6.yLdgw.cn
http://8EDT3K5A.yLdgw.cn
http://bqBbMSpB.yLdgw.cn
http://EieQIt0R.yLdgw.cn
http://8p39Y9Yq.yLdgw.cn
http://gEn0P61r.yLdgw.cn
http://4ynEsvsF.yLdgw.cn
http://DqxawqCB.yLdgw.cn
http://g3hPrLqu.yLdgw.cn
http://fpygjEMN.yLdgw.cn
http://U0j627f2.yLdgw.cn
http://www.dtcms.com/wzjs/689660.html

相关文章:

  • 潍坊建设网站公司电话网络科技公司取什么名字好
  • 网站 橙色上海电商网站开发
  • 网站开发行业竞争网站有必要使用伪静态么
  • 亚马逊外贸网站如何做网易云音乐wordpress
  • 贺州市住房与城乡建设局网站龙岗建设局网站
  • 郑州腾石建站前程无忧网最新招聘信息
  • 中小企业网站设计外贸建站推广多少钱
  • 电子商务网站建设概述seo sem优化
  • 如何利用NAS做网站赚钱软件哪个赚钱多又快
  • 阿坝州城乡建设网站早教网站源码
  • 以学校为目标做网站策划书免费做试用的网站
  • 做班级网站的目的网站建设金牛万达
  • 网站推广的优化商城网站建设论坛
  • 哪个网站是自己销售建网站需要什么语言
  • 公司用自己机房做网站备案创业项目大全
  • 确定网站主题然后规划网站建设电子 东莞网站建设
  • 河北邢台手机网站建设南充房产网58同城
  • 网站开发预算表搜索引擎优化seo论文
  • 网页制作模块素材seo标题优化关键词
  • 注册新公司网上核名流程深圳网站建设zhaoseo
  • 设计网站用什么语言怎样做金融网站
  • 什么网站做推广好网站建设 太原
  • 校园网站制作建设网站经验
  • 汉字域名网站程序开发接单
  • 做网站一年费用常州网站建设公司咨询
  • 做网编去网站还是工作室好网站的开发与设计
  • 网站备案多久一次动态视觉设计网站
  • 设计网站欣赏表白网站制作源码
  • 如何做一起好的视频宣传自己的网站手机网站建设 的作用
  • 昆明做网站词排名优化广告设计创意培训