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

时间:2019-04-22 06:49:27

标签: c# .net dependency-injection .net-core app-config

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

2 个答案:

答案 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>();
            }
      }