从 .NET Core 2 中的 class 读取 appsettings.json
Read appsettings.json from a class in .NET Core 2
我需要从企业 class 的 appsettings.json
文件(部分:placeto
)中读取属性列表,但我无法访问它们。我需要这些属性为 public.
我把文件加在Program
class:
这是我的 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<Startup>()
.Build();
}
第二个:为您的 class 创建一个接口,并通过创建 Iconfiguration
字段来通过依赖注入传递配置:
private readonly IConfiguration Configuration;
然后由构造函数传递:
public Test(IConfiguration configuration)
{
Configuration = configuration;
}
然后为您的 class 创建一个接口,以便正确使用 Dependency Injection
。然后可以创建它的实例而无需将 IConfiguration
传递给它。
这是 class 和界面:
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中通过调用class实现依赖注入:
services.AddSingleton< ITest, Test>();
在你的ConfigureServices
方法中
现在您可以将 class 实例传递给依赖注入所使用的任何 class。
例如,如果您 ExampleController
想在其中使用 class,请执行以下操作:
private readonly ITest _test;
public ExampleController(ITest test)
{
_test = test;
}
现在您有了 _test 实例,可以在您的控制器中的任何位置访问它。
我需要从企业 class 的 appsettings.json
文件(部分:placeto
)中读取属性列表,但我无法访问它们。我需要这些属性为 public.
我把文件加在Program
class:
这是我的 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<Startup>()
.Build();
}
第二个:为您的 class 创建一个接口,并通过创建 Iconfiguration
字段来通过依赖注入传递配置:
private readonly IConfiguration Configuration;
然后由构造函数传递:
public Test(IConfiguration configuration)
{
Configuration = configuration;
}
然后为您的 class 创建一个接口,以便正确使用 Dependency Injection
。然后可以创建它的实例而无需将 IConfiguration
传递给它。
这是 class 和界面:
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中通过调用class实现依赖注入:
services.AddSingleton< ITest, Test>();
在你的ConfigureServices
方法中
现在您可以将 class 实例传递给依赖注入所使用的任何 class。
例如,如果您 ExampleController
想在其中使用 class,请执行以下操作:
private readonly ITest _test;
public ExampleController(ITest test)
{
_test = test;
}
现在您有了 _test 实例,可以在您的控制器中的任何位置访问它。