یک نکتهی تکمیلی: ارتقاء به ASP.NET Core 2.0
بر اساس
مستندات دات نت Core 2.0، در فایل Startup.cs، الزاما نیازی به تنظیمات ذیل
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
نیست و با جایگزین کردن این قطعه کد با
public IConfiguration Configuration { get; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
و سپس انجام این تغییرات
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
در فایل Program.cs موجب فراخوانی کلیه تنظیمات پیش فرض خواهد شد.
در واقع متد CreateDefaultBuilder این کار را انجام میدهد. البته همچنان امکان تنظیمات سفارشی نیز موجود است.
public static IWebHost BuildWebHost(string[] args)
{
return WebHost.CreateDefaultBuilder()
.ConfigureAppConfiguration((ctx, cfg) =>
{
cfg.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("config.json", true) // require the json file!
.AddEnvironmentVariables();
})
.ConfigureLogging((ctx, logging) => { }) // No logging
.UseStartup<Startup>()
.Build();
}
لازم به ذکر است سرویس IConfiguration از ابتدا در سیستم ثبت شده است و جهت دسترسی به تنظیمات میتوان در قسمتهای مختلف برنامه آن را تزریق نمود.