我使用以下代码注入了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>();
}
}
在名为 AppSettingUtil 的类中使用此函数时,我在IConfiguration对象上得到了空指针异常。
下面是我正在使用的代码
public class AppSettingUtil
{
public AppSettingUtil(IConfiguration configuration)
{
_configuration = configuration;
}
public IConfiguration Configuration { get; }
}
执行下面的函数时,我得到了空指针异常
private static object GetDefault(string name)
{
if (_configuration[name] != null)
{
return Convert.ToInt32(_configuration[name]);
}
return null;
}
在执行此功能时,对象 _configuration 为null,因此抛出空指针异常,
答案 0 :(得分:4)
也可以按照以下步骤进行操作:
(我是在.net核心控制台应用程序的主线程中这样做的)
Tissues M
0 a1 1
1 x2 2
2 y3 a
3 b 4
4 c1 b
5 v2 a
6 w3 7
我在此stackoverflow question中找到了解决方案。
对我有用。 希望它也对您有用。
答案 1 :(得分:3)
我在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>();
}
}