Technology sharing

.Net core instrumenta legere consuetudo configuratione files

2024-07-12

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

Mores legendi configuratio imaginum communis necessitas est in .NET Core, praesertim cum vexillumappsettings.jsonappsettings.Development.jsonor *appsettings.Production.json Cum fasciculus configurationis non sufficit ad applicationes tuas necessitates occurrere. Hic sunt gradus in quo legendi consuetudinem configurationis fasciculi efficiendi:

Configuratione 1. crea in mos lima

Primum, fac consuetudinem configurationis fasciculi in indice radix project tui vel ubicumque tibi videbitur, e.g.mycustomsettings.json

2. Definire configuratione genus

Deinde genus definire debes quod conformatio formae conformationis fasciculi congruit.hypothesimycustomsettings.jsonContentum talis est:

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

Configurationis genus sic definire potes:

  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. inStartup.csConfigurare et lege configuratione

exist.NET CoreapplicataStartup.cslima, vos postuloConfigureServicesMethodus ad subsidium consuetudinis configurationis limas adde et eas ad injectiones continentis dependentiae adde.

  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. Inject et uti configuratione in moderatoris vel aliis generibus

Nunc uti potes in moderatore tuo vel aliis officiis per injectionem dependentiamMyCustomSettingsOptions.

  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. }

Definiens genus quod configuratione file structuram aequet ac deindeStartup.csConfigurare et lege has figurationes, ac tandem his configurationibus utere in aliis partibus applicationis per injectionem dependentiam.