моя контактная информация
Почтамезофия@protonmail.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Чтение пользовательских файлов конфигурации — обычная потребность в .NET Core, особенно когда стандартныеappsettings.json
、appsettings.Development.json
илиappsettings.Production.json
Когда файла конфигурации недостаточно для удовлетворения потребностей вашего приложения. Вот шаги по реализации чтения пользовательского файла конфигурации:
Сначала создайте собственный файл конфигурации в корневом каталоге вашего проекта или там, где вы считаете нужным, например.mycustomsettings.json
。
Далее вам необходимо определить класс, соответствующий структуре вашего пользовательского файла конфигурации.гипотезаmycustomsettings.json
Содержание следующее:
- {
- "MyCustomSettings": {
- "Key1": "Value1",
- "Key2": "Value2"
- }
- }
Вы можете определить класс конфигурации следующим образом:
- public class MyCustomSettings
- {
- public string Key1 { get; set; }
- public string Key2 { get; set; }
- }
-
- public class MyCustomSettingsOptions
- {
- public MyCustomSettings MyCustomSettings { get; set; }
- }
Startup.cs
Настроить и прочитать конфигурациюсуществовать.NET Core
ПрименяемыйStartup.cs
файл, вам нужноConfigureServices
Метод для добавления поддержки пользовательских файлов конфигурации и добавления их в контейнер внедрения зависимостей.
- public void ConfigureServices(IServiceCollection services)
- {
- // 添加对自定义配置文件的支持
- var builder = new ConfigurationBuilder()
- .SetBasePath(Directory.GetCurrentDirectory())
- .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
- .AddJsonFile("mycustomsettings.json", optional: true, reloadOnChange: true); // 添加自定义配置文件
-
- IConfigurationRoot configuration = builder.Build();
-
- // 绑定配置到MyCustomSettingsOptions类
- services.Configure<MyCustomSettingsOptions>(configuration.GetSection("MyCustomSettings"));
-
- // 其他服务配置...
-
- services.AddControllers();
- // 其他配置...
- }
Теперь вы можете использовать его в своем контроллере или других службах посредством внедрения зависимостей.MyCustomSettingsOptions
.
- [ApiController]
- [Route("[controller]")]
- public class MyController : ControllerBase
- {
- private readonly MyCustomSettings _myCustomSettings;
-
- public MyController(IOptions<MyCustomSettingsOptions> options)
- {
- _myCustomSettings = options.Value.MyCustomSettings;
- }
-
- [HttpGet]
- public IActionResult Get()
- {
- // 使用_myCustomSettings...
- return Ok($"Key1: {_myCustomSettings.Key1}, Key2: {_myCustomSettings.Key2}");
- }
- }
Определив класс, соответствующий структуре файла конфигурации, а затемStartup.cs
Настройте и прочитайте эти конфигурации и, наконец, используйте их в других частях приложения посредством внедрения зависимостей.