Внедрение зависимостей не работает для IConfiguration C # .Net Core - PullRequest
1 голос
/ 22 апреля 2019

Я ввел 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 равен нулю,и, следовательно, выдает исключение нулевого указателя,

1 Ответ

1 голос
/ 22 апреля 2019

Я использую это в ядре 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>();
            }
      }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...