प्रौद्योगिकी साझेदारी

.Net core कस्टम् विन्याससञ्चिकानां पठनं कार्यान्वितं करोति

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

३ इञ्Startup.csविन्यासं विन्यस्य पठन्तु च

अस्ति.NET Coreप्रयुक्तम्Startup.csfile, भवतः आवश्यकता अस्ति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. नियन्त्रकेषु अन्येषु वा वर्गेषु विन्यासस्य इन्जेक्ट् कृत्वा उपयोगं कुर्वन्तु

इदानीं भवान् स्वस्य नियन्त्रकेषु अन्येषु वा सेवासु dependency injection मार्गेण तस्य उपयोगं कर्तुं शक्नोति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एतानि विन्यासानि विन्यस्य पठन्तु, अन्ते च निर्भरता-इञ्जेक्शन्-माध्यमेन अनुप्रयोगस्य अन्येषु भागेषु एतानि विन्यासानि उपयुज्यताम् ।