依赖注入不适用于IConfiguration C#.Net Core

问题描述 投票:1回答:1

我使用以下代码注入了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,因此抛出空指针异常,

c# .net dependency-injection .net-core app-config
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>();
            }
      }
© www.soinside.com 2019 - 2024. All rights reserved.