依賴注入
由容器統(tǒng)一創(chuàng)建對(duì)象并管理其創(chuàng)建對(duì)象的生命周期;
AddTransient瞬時(shí)服務(wù)
每次使用都會(huì)創(chuàng)建新的實(shí)例
AddScoped作用域
容器或子容器的生命周期內(nèi),對(duì)象保持一致,如果容器釋放掉,那就意味著對(duì)象也會(huì)釋放掉;
AddSingleton單例
整個(gè)根容器的生命周期內(nèi)是同一個(gè)對(duì)象
其他
TryAddScoped
AddHttpClient
AddHttpContextAccessor
AddDbContext
AddControllers
批量注入
其他生命周期中獲取服務(wù)
中間件
系統(tǒng)自帶
UseHttpsRedirection:強(qiáng)制https跳轉(zhuǎn)
....
用途:
1全局?jǐn)r截,如:IP白名單,請(qǐng)求頭過濾
2錯(cuò)誤處理,如:未處理異常處理、自定義異常(登錄失敗,參數(shù)錯(cuò)誤等)處理
3權(quán)限校驗(yàn)
4。。。
配置文件application.json
讀取方式:
1Configuration["A"]
2Configuration["A:b"]
3Configuration.GetValue<int>("A")
4Configuration.GetConnectionString
5Configuration.Get<TOption>
選項(xiàng)模式
IOptions、IOptionsMonitor以及IOptionsSnapshot的區(qū)別
配置項(xiàng)目啟動(dòng)地址
1修改launchSettings.json
2builder.WebHost.UseUrls("http://0.0.0.0:5552", "https://127.0.0.1:5553", "https://localhost:5554")
WebApi
ActionResult返回類型
return result;
return Ok(result);//200
return BadRequest(result);/400
CORS允許跨域請(qǐng)求
每次使用都會(huì)創(chuàng)建新的實(shí)例
容器或子容器的生命周期內(nèi),對(duì)象保持一致,如果容器釋放掉,那就意味著對(duì)象也會(huì)釋放掉;
整個(gè)根容器的生命周期內(nèi)是同一個(gè)對(duì)象
TryAddScoped
AddHttpClient
AddHttpContextAccessor
AddDbContext
AddControllers
批量注入
var assembly = Assembly.GetExecutingAssembly(); var ilist = assembly.GetTypes().Where(t => t.GetTypeInfo().IsInterface); var list = assembly.GetTypes().Where(t => t.GetTypeInfo().IsClass); foreach (Type serviceType in list) { var interfaceType = ilist.FirstOrDefault(x => x.IsAssignableFrom(serviceType)); if (interfaceType != null) { if (interfaceType.FullName != null && interfaceType.FullName.StartsWith("KKBM.Application.Queries")) { services.AddScoped(interfaceType, serviceType); } } }
UseHttpsRedirection:強(qiáng)制https跳轉(zhuǎn)
....
1全局?jǐn)r截,如:IP白名單,請(qǐng)求頭過濾
2錯(cuò)誤處理,如:未處理異常處理、自定義異常(登錄失敗,參數(shù)錯(cuò)誤等)處理
3權(quán)限校驗(yàn)
4。。。
1Configuration["A"]
2Configuration["A:b"]
3Configuration.GetValue<int>("A")
4Configuration.GetConnectionString
5Configuration.Get<TOption>
1修改launchSettings.json
2builder.WebHost.UseUrls("http://0.0.0.0:5552", "https://127.0.0.1:5553", "https://localhost:5554")
return result;
return Ok(result);//200
return BadRequest(result);/400
浙公網(wǎng)安備 33010602011771號(hào)