我使用以下代码注入了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;
}
执行此函数时,object _configuration为null,因此抛出空指针异常,
我在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>();
}
}