C# ASP.NET Core 2.1从appsettings.json获取变量而不使用Startup.cs

C# ASP.NET Core 2.1从appsettings.json获取变量而不使用Startup.cs,c#,asp.net-core,asp.net-core-mvc,C#,Asp.net Core,Asp.net Core Mvc,这是我的appsettings.json。它位于没有startup.cs的类库中。我想知道是否有可能从那里获取变量,以便在本地使用 { "AccountsAddress": "http://localhost:55260/api/Accounts/", "ApplicationUsersAddress": "http://localhost:55260/api/ApplicationUsers/" } public static class Manager { public s

这是我的appsettings.json。它位于没有startup.cs的类库中。我想知道是否有可能从那里获取变量,以便在本地使用

{
  "AccountsAddress": "http://localhost:55260/api/Accounts/",
  "ApplicationUsersAddress": "http://localhost:55260/api/ApplicationUsers/"
}

public static class Manager
{
    public static IConfiguration AppSetting { get; }
    static Manager()
    {
        AppSetting = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.json")
                .Build();
    }
}

这是我图书馆的结构

{
  "AccountsAddress": "http://localhost:55260/api/Accounts/",
  "ApplicationUsersAddress": "http://localhost:55260/api/ApplicationUsers/",
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*"
}
创建myConfig.cs文件并粘贴以下代码

using Microsoft.Extensions.Configuration;
static class ConfigurationManager
{
    public static IConfiguration AppSetting { get; }
    static ConfigurationManager()
    {
        AppSetting = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("YouAppSettingFile.json")
                .Build();
    }
}
现在您可以像这样使用它:

string value = ConfigurationManager.AppSetting["value_Key"];

如果您正在编写库,为什么不让应用程序来处理它呢。硬编码到你的库中会给使用你的库的人带来极大的不便。因为环境之间的差异会改变,我认为更改json文件会更容易。啊,绝对是这样。但是为什么您坚持您的库必须有自己的库,而不是让您的应用程序提供这些库呢?为什么你的类不被注入它们需要的东西,应用程序就会提供配置呢?我的想法是,我将把这个类库用于多个应用程序。我不想在我的应用程序中编写额外的代码,因为我可以让我的类库从它自己的应用程序设置中读取。很抱歉,我使用的是你的解决方案,得到的是空值。我需要做些什么来适应我的应用程序设置吗?这对我来说很有用。你能展示你的代码吗?可能你的应用程序设置文件不正确。你的应用程序设置看起来像什么?我添加了我的应用程序的屏幕截图structure@JianYA制作一个样本测试项目并尝试。