@ohthatbaguk

Как правильно использовать класс Startup для чтения Json и использования данных из него?

Вот мой код:
public class Startup
    {
        public static AppSettings AppSettings { get; private set; }
        private AppSettings _appSettings;
        
        private IConfiguration Configuration { get; set; }
        
        public void ConfigureServices(IServiceCollection services)
        {
            Configuration = new ConfigurationBuilder()
                .AddJsonFile("appsettings.json")
                .AddEnvironmentVariables()
                .Build();

            _appSettings = services
                .BuildServiceProvider()
                .GetService<AppSettings>();

            AppSettings = _appSettings;
        }


Вот Json файл:

{
  "Username": "username",
  "Password": "password",
  "AppUrl": "url"
}


И моделька Json
public class AppSettings 
    {
        public string AppUrl { get; set; }
        
        public string Username { get; set; }
        
        public string Password { get; set; }
        
    }
  • Вопрос задан
  • 34 просмотра
Решения вопроса 1
@vabka Куратор тега C#
Токсичный
1. IConfiguration резолвится извне, так что эти строки не нужны:
Configuration = new ConfigurationBuilder()
                .AddJsonFile("appsettings.json")
                .AddEnvironmentVariables()
                .Build();

Надо только конструктор для этого добавить:
public Startup(IConfiguration configuration) =>
            Configuration = configuration;

        public IConfiguration Configuration { get; }

2. Не нужно собирать контейнер. Просто вызывай:
Configuration.Get<AppSettings>();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы