Обмен технологиями

Ядро .Net реализует чтение пользовательских файлов конфигурации.

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Чтение пользовательских файлов конфигурации — обычная потребность в .NET Core, особенно когда стандартныеappsettings.jsonappsettings.Development.jsonилиappsettings.Production.json Когда файла конфигурации недостаточно для удовлетворения потребностей вашего приложения. Вот шаги по реализации чтения пользовательского файла конфигурации:

1. Создайте собственный файл конфигурации.

Сначала создайте собственный файл конфигурации в корневом каталоге вашего проекта или там, где вы считаете нужным, например.mycustomsettings.json

2. Определите класс конфигурации

Далее вам необходимо определить класс, соответствующий структуре вашего пользовательского файла конфигурации.гипотезаmycustomsettings.jsonСодержание следующее:

  1. {
  2. "MyCustomSettings": {
  3. "Key1": "Value1",
  4. "Key2": "Value2"
  5. }
  6. }

Вы можете определить класс конфигурации следующим образом:

  1. public class MyCustomSettings
  2. {
  3. public string Key1 { get; set; }
  4. public string Key2 { get; set; }
  5. }
  6. public class MyCustomSettingsOptions
  7. {
  8. public MyCustomSettings MyCustomSettings { get; set; }
  9. }

3. вStartup.csНастроить и прочитать конфигурацию

существовать.NET CoreПрименяемыйStartup.csфайл, вам нужноConfigureServicesМетод для добавления поддержки пользовательских файлов конфигурации и добавления их в контейнер внедрения зависимостей.

  1. public void ConfigureServices(IServiceCollection services)
  2. {
  3. // 添加对自定义配置文件的支持
  4. var builder = new ConfigurationBuilder()
  5. .SetBasePath(Directory.GetCurrentDirectory())
  6. .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
  7. .AddJsonFile("mycustomsettings.json", optional: true, reloadOnChange: true); // 添加自定义配置文件
  8. IConfigurationRoot configuration = builder.Build();
  9. // 绑定配置到MyCustomSettingsOptions类
  10. services.Configure<MyCustomSettingsOptions>(configuration.GetSection("MyCustomSettings"));
  11. // 其他服务配置...
  12. services.AddControllers();
  13. // 其他配置...
  14. }

4. Внедряйте и используйте конфигурацию в контроллере или других классах.

Теперь вы можете использовать его в своем контроллере или других службах посредством внедрения зависимостей.MyCustomSettingsOptions.

  1. [ApiController]
  2. [Route("[controller]")]
  3. public class MyController : ControllerBase
  4. {
  5. private readonly MyCustomSettings _myCustomSettings;
  6. public MyController(IOptions<MyCustomSettingsOptions> options)
  7. {
  8. _myCustomSettings = options.Value.MyCustomSettings;
  9. }
  10. [HttpGet]
  11. public IActionResult Get()
  12. {
  13. // 使用_myCustomSettings...
  14. return Ok($"Key1: {_myCustomSettings.Key1}, Key2: {_myCustomSettings.Key2}");
  15. }
  16. }

Определив класс, соответствующий структуре файла конфигурации, а затемStartup.csНастройте и прочитайте эти конфигурации и, наконец, используйте их в других частях приложения посредством внедрения зависимостей.