標籤:start configure 技術分享 connect cto uil builder .com config
{ "Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Warning" } }, "AppSettings": { "SqlServerConnection": "Server=127.0.0.1;Database=demo;User ID=sa;Password=sa;", "RedisCaching": { "Enabled": true, "ConnectionString": "127.0.0.1:6379" } }}
1、初始化注入方式
Startup.cs下ConfigureServices方法:
services.AddOptions();services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
public class AppSettings{ public RedisCaching RedisCaching { get; set; }}public class RedisCaching{ /// <summary> /// 是否啟用 /// </summary> public bool Enabled { get; set; } /// <summary> /// 連結資訊 /// </summary> public string ConnectionString { get; set; }}
然後在控制器中調用:
public readonly IOptions<AppSettings> Setting;public HomeController(IOptions<AppSettings> setting){ Setting = setting;}public IActionResult Index(){ var s = Setting.Value.RedisCaching.ConnectionString; ViewData["abc"] = s; return View();}
2、讀取appsettings.json方式 (此方法如在單獨的類庫中需引用Microsoft.Extensions.Options.ConfigurationExtensions)
1)先設定appsettings.json檔案複製到根目錄.右鍵appsettings.json 進階 複製到輸出目錄中選“始終複製”.
2)
public T Get<T>(string key) { IConfiguration config = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", true, true).Build(); return config.GetSection(key).Get<T>(); }
public IActionResult Index() { var s = new GetAppSetting().Get<string>("AppSettings:SqlServerConnection"); ViewData["abc"] = s; return View(); }
第一種方法在別的類庫中也可調用,比較方便,剛做core項目,用第一種方法時類庫中不好調用,查了半天用第二種就可以了。
.NET Core 讀取appsettings.json