Swa*_*har 4 .net c# dependency-injection app-config .net-core
我使用以下代码注入了 IConfiguration:
public class InjectorConfig
{
/// <summary>
/// configuration for DI
/// </summary>
/// <param name="services"></param>
/// <param name="configuration"></param>
public static void Init(IServiceCollection services, IConfiguration configuration)
{
services.AddSingleton<IConfiguration>(provider => configuration);
services.AddSingleton<AppSettingUtil>();
}
}
Run Code Online (Sandbox Code Playgroud)
在我的名为AppSettingUtil 的类中使用它时,我在 IConfiguration 对象上遇到空指针异常。
下面是我正在使用的代码
public class AppSettingUtil
{
public AppSettingUtil(IConfiguration configuration)
{
_configuration = configuration;
}
public IConfiguration Configuration { get; }
}
Run Code Online (Sandbox Code Playgroud)
在执行以下函数时,我收到空指针异常
private static object GetDefault(string name)
{
if (_configuration[name] != null)
{
return Convert.ToInt32(_configuration[name]);
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
在执行此函数时,对象_configuration为空,因此抛出空指针异常,
小智 12
我在asp.net核心中使用这个并为我工作:
public class Startup
{
public Startup(IHostingEnvironment env , IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IConfiguration>(provider => configuration);
services.AddSingleton<AppSettingUtil>();
}
}
Run Code Online (Sandbox Code Playgroud)
也可以这样做:
(我在 .net 核心控制台应用程序的主线程中执行此操作)
public static void Main(string[] args)
{
IConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
// Duplicate here any configuration sources you use.
configurationBuilder.AddJsonFile("AppSettings.json");
IConfiguration configuration = configurationBuilder.Build();
Program.token = configuration["token"];
Program.guidID = configuration["guidID"];
Program.kind = configuration["kind"];
Run Code Online (Sandbox Code Playgroud)
我在这个stackoverflow question 中找到了解决方案。
这个对我有用。希望它也适用于你。
| 归档时间: |
|
| 查看次数: |
8103 次 |
| 最近记录: |