新C#类库项目中json文件中的appsettings

本文关键字:文件 appsettings json 类库 项目 | 更新日期: 2023-09-27 18:26:52

这不应该这么难,我有一个类库包(VS2015的新版本)。由于我在解决方案的其余部分中引用了.Net 4.6,所以我删除了asp。Net5.4完全来自这个库的project.json文件。我添加了Configuration.Json包和OptionsModel包,以及任何依赖项。我正试图遵循我在SO上发现的一些片段,但似乎没有一个能让我有所进展。

MikesDotNetting对此有一篇很好的文章,但它只适用于mvc6项目或类库,在那里你可以引用mvc6,这对我来说不起作用。http://www.mikesdotnetting.com/article/284/asp-net-5-configuration

 public class Startup
{
    public IConfiguration Configuration { get; set; }
    public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
    {
        var builder = new ConfigurationBuilder(appEnv.ApplicationBasePath)
            .AddJsonFile("config.json");
        Configuration = builder.Build();
    }
}

我在许多示例中都看到了这一点,但ConfigurationBuilder采用IConfigurationProviders数组,appEnv.ApplicationBasePath是一个字符串。很自然,这在这里不起作用。

{
  "Data": {
    "DefaultConnection": {
      "ConnectionString": "Server=    (localdb)''MSSQLLocalDB;Database=_CHANGE_ME;Trusted_Connection=True;"
    },
    "AppSetting": {
      "SMSProvider": "betterSms",
      "SMSAccountUser": "sakjfbhkdfbsdkfbksdfnbkdln",
      "SMSAccountSecret": "dswkjgfhszdkfhdskfhdk",
      "SMSPhoneFrom": "+15555555555"
    }
  }
}

我只是想建立一个简单的访问机制来访问config.json文件中包含的许多应用程序设置。

新C#类库项目中json文件中的appsettings

您可以访问应用程序中的配置变量,如:

var connString = Startup.Configuration.Get("Data:DefaultConnection:ConnectionString");