如何在Core 2.0的ConfigurationBuilder中设置基本路径。
我用Google搜索,发现这个问题,这个来自微软的文档,以及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"
}
}
更新:
除了按照Set指示的那样添加Microsoft.Extensions.Configuration.FileExtensions,我还需要添加Microsoft.Extensions.Configuration.Json来获取扩展名。AddJsonFile
Microsoft.Extensions.Configuration.Json
有依赖项Microsoft.Extensions.Configuration.FileExtensions
,因此您只需要前者。
AddJsonFile("appsettings.json")
方法不知道您的托管环境!使用.AddJsonFile($"appsettings.{_hostingEnvironment.EnvironmentName}.json")
代替。:D