从.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实例可以在控制器的任何地方访问它。