南充市住房和城乡建设厅网站无极ip
注:直接学习的.Net Core 6,此版本有没有startup.cs相关的内容
项目Program.cs文件中 是定义项目加载 启动的地方
//通过builder对项目进行配置、服务的加载
var builder = WebApplication.CreateBuilder(args);
 builder.Services.AddControllers();//将项目中的控制器及相关的服务注册到容器中
 builder.Services.AddEndpointsApiExplorer();
 builder.Services.AddSwaggerGen();//将Swagger相关服务注册到容器
----------------------------------------------------------------------------------------------------
builder.Services.AddScoped<服务>();//注入目标文件,如业务层、数据访问层文件
//调用此服务的主体一般在构造函数中添加注入方式
例: private readonly UserOperateServices _operateService;
         public UserController(UserOperateServices service)
         {
             this._operateService = service;
         }
//_operateService.Execute();
//不使用构造注入的方式 只有在调用Test的时候,才注入MyService1,且不需要在构造函数中有
        [HttpGet("Testtest")]
         public string Test([FromServices] UserOperateServices myService1, string name) 
         {
             var names = myService1.GetNames();
             return string.Join(",", names) + ",hello:" + name;
         }
 //当我们想注册服务的时候,主要把注册代码放到builder.Build()之前就可以
 //注册代码的顺序不会影响程序运行的效果
 var app = builder.Build();
  
--------------------------------------------------------------------------------------------------------
//在CreateBuilder方法中已经完成了配置系统的初始化,就不再需要使用service.AddOption方法来注册选项的相关服务
 builder.Host.ConfigureAppConfiguration((_, configBuilder) => { //此处下划线是抛元,类似于占位符
     string connStr = builder.Configuration.GetConnectionString("configServer");//在用户机密里的节点
     configBuilder.AddDbConfiguration(() => new SqlConnection(connStr));
 });
 //需要写配置类和配置节点的绑定
 builder.Services.Configure<SmtpOptions>(builder.Configuration.GetSection("Smtp"));//SmtpOptions是配置实体类
 ---------------------------------------------------------------------
EF Core 与原先的使用区别不大,因为新框架注入的需求,在使用的形式上有需要处理的部分
