"大叔博客" LindDotNetCore基礎介紹 1. 運行環境 2. 配置文件 3. 服務的註冊 4. 配置文件的註冊 5. 服務的使用 6. 配置文件的使用 運行環境 vs2017+.netcore2.0,vs需要升級到最新包 配置文件 appsetting.json,我們提出了開發環境,測試 ...
LindDotNetCore基礎介紹
- 運行環境
- 配置文件
- 服務的註冊
- 配置文件的註冊
- 服務的使用
配置文件的使用
運行環境
vs2017+.netcore2.0,vs需要升級到最新包
配置文件
appsetting.json,我們提出了開發環境,測試環境和生產環境,分別對應不同的文件
- 開發:Development,appsetting.Development.json
- 測試:Staging,appsetting.Development.json
生產:Producting,appsetting.Development.json
服務的註冊
在.net core里,包括在LindDotNetCore里,服務的註冊是在startup里進行,你可以方便的控制每個組件的生命周期。- 單例,整個進程使用同一個實例,像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 } }
配置文件的註冊
大叔封裝了配置文件的註入和獲取方法,註入需要依賴環境變數,它在startup初始時被生產。
public Startup(IConfiguration configuration, IHostingEnvironment env) { ConfigFileHelper.Set(env: env); Configuration = configuration; }
服務的使用
我們的服務在startup里一次性被註入,然後在每個控制器的構造方法里被使用,註意:我們的服務支持依賴型註入,
這點對我們重要,比如一個服務的生產依賴於另一個服務,那麼,這種關係由core DI幫我們實現![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>());
待續...