LindDotNetCore~入門基(ji)礎
LindDotNetCore基礎介紹
- 運行環境
- 配置文件
- 服務的注冊
- 配置文件的注冊
- 服務的使用
- 配置文件的使用
運行環境
vs2017+.netcore2.0,vs需要升(sheng)級到最(zui)新(xin)包
配置文件
appsetting.json,我們提出(chu)了開發環(huan)境(jing),測試環(huan)境(jing)和生(sheng)產環(huan)境(jing),分別對應(ying)不同的(de)文(wen)件(jian)
- 開發:Development,appsetting.Development.json
- 測試:Staging,appsetting.Development.json
- 生產:Producting,appsetting.Development.json
服務的注冊
在.net core里(li),包括在LindDotNetCore里(li),服(fu)務的注冊是在startup里(li)進(jin)行,你可以方便的控制每個(ge)組件的生命周(zhou)期。
- 單例,整個進程使用同一個實例,像redis,mongodb,日志
- 線程單例,在一個線程里它是唯一的實例,在api環境下,你的一個http請求下來,一個對象只生產一次,像http請求鏈
- 瞬息,每次注入時,都會生產一個新的實體。像倉儲對象,數據上下文
public void ConfigureServices(IServiceCollection services)
{
//Lind.DotNetCore封裝的一些模塊
services.AddLog4Logger(o =>
{
o.Log4ConfigFileName = "log4.config";
o.ProjectName = "test";
});
services.UseDapper(o =>
{
o.ConnString = $"Data Source={Directory.GetCurrentDirectory()}/intergratetest.db";
o.DbType = Lind.DotNet
}
}
配置文件的注冊
大(da)叔(shu)封裝(zhuang)了配置(zhi)文件(jian)的注(zhu)入和(he)獲取方(fang)法(fa),注(zhu)入需要依賴環境變量(liang),它在startup初(chu)始時被生產。
public Startup(IConfiguration configuration, IHostingEnvironment env)
{
ConfigFileHelper.Set(env: env);
Configuration = configuration;
}
服務的使用
我們的服務在startup里一次性被注入,然后在每個控制器的構造方法里被使用,注意:我們的服務支持依賴型注入,
這點對我們(men)重要,比如一個服務(wu)的生產(chan)依(yi)賴于另(ling)一個服務(wu),那么,這種關系(xi)由(you)core DI幫我們(men)實現(xian)!
[Route("api/[controller]")]
public class ValuesController : Controller
{
ILogger _logger;
public ValuesController(ILogger logger)
{
_logger = logger;
}
配置文件的使用
我們可以直接使用Utils命名空間下的ConfigFileHelper對象,它里面有Get方法,用來獲取具體的配置節點
注意,咱們的配置節點支持強類型和字符串兩種,強類型要求你提供泛型,字符串只要輸入名稱就可以
返回具體的值了。
var options = new EFConfig();
//裝飾
configure?.Invoke(options);
//優先級控制
ObjectMapper.MapperTo(options, ConfigFileHelper.Get<EFConfig>());
待續...
回到目錄