ฉันจะตั้งค่าพา ธ ฐานใน ConfigurationBuilder ใน Core 2.0 ได้อย่างไร
ฉันมี googled และพบนี้คำถามนี้จากเอกสารไมโครซอฟท์และ2.0เอกสารออนไลน์ แต่พวกเขาดูเหมือนจะใช้รุ่นของMicrosoft.Extension.Configurationจาก1.0.0-beta8
appsettings.jsonฉันต้องการที่จะอ่าน มีวิธีใหม่ในการทำเช่นนี้ใน Core 2.0 หรือไม่?
using System;
using System.IO;
using Microsoft.Extensions.Configuration;
namespace ConsoleApp2
{
class Program
{
public static IConfigurationRoot Configuration { get; set; }
static void Main(string[] args)
{
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory()) // <== compile failing here
.AddJsonFile("appsettings.json");
Configuration = builder.Build();
Console.WriteLine(Configuration.GetConnectionString("con"));
Console.WriteLine("Press a key...");
Console.ReadKey();
}
}
}
appsetting.json
{
"ConnectionStrings": {
"con": "connection string"
}
}
อัปเดต:
นอกเหนือจากการเพิ่มMicrosoft.Extensions.Configuration.FileExtensionsตามที่ระบุด้านล่างโดยSet I ยังต้องเพิ่มMicrosoft.Extensions.Configuration.Jsonเพื่อรับAddJsonFileส่วนขยาย
Microsoft.Extensions.Configuration.Jsonมีการพึ่งพาMicrosoft.Extensions.Configuration.FileExtensionsดังนั้นคุณแค่ต้องการอดีต
AddJsonFile("appsettings.json")วิธีการนี้ไม่ได้คำนึงถึงสภาพแวดล้อมการโฮสต์ของคุณ! ใช้.AddJsonFile($"appsettings.{_hostingEnvironment.EnvironmentName}.json")แทน : D