从.NET Core 2中的类读取appsettings.json

我需要从业务类中的appsettings.json文件(section: placeto )中读取属性列表,但我无法访问它们。 我需要公开这些属性。

我在Program类中添加了该文件:

课程计划

这是我的appsettings.json

 { "Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Warning" } }, "placeto": { "login": "fsdfsdfsfddfdfdfdf", "trankey": "sdfsdfsdfsdfsdf" } } 

第一 :使用program.cs的默认值,因为它已添加配置:

 public class Program { public static void Main(string[] args) { BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup() .Build(); } 

第二步 :通过创建Iconfiguration字段为您的类创建一个接口并通过dependency injection传递配置:

 private readonly IConfiguration Configuration; 

然后通过构造函数传递它:

 public Test(IConfiguration configuration) { Configuration = configuration; } 

然后为您的类创建一个接口,以便正确使用Dependency Injection 。 然后可以创建它的实例而无需将IConfiguration传递给它。

这是类和接口:

 using Microsoft.Extensions.Configuration; namespace GetUserIdAsyncNullExample { public interface ITest { void Method(); } public class Test : ITest { public Test(IConfiguration configuration) { Configuration = configuration; } private readonly IConfiguration Configuration; public void Method() { string here = Configuration["placeto:login"]; } } } 

第三 :然后在您的startup.cs中通过调用以下方法为您的类实现dependency injection:

 services.AddSingleton< ITest, Test>(); 

在您的ConfigureServices方法中

现在,您可以将类实例传递给Dependency Injection使用的任何类。


例如,如果您有ExampleController其中使用您的类的ExampleController ,请执行以下操作:

  private readonly ITest _test; public ExampleController(ITest test) { _test = test; } 

现在你有_test实例可以在控制器的任何地方访问它。