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

नोट्स्: Microsoft.Extensions.Options इत्यस्य उपयोगः कथं भवति

2024-07-12

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

प्रथमं प्रयोजनम् : १.

Microsoft.Extensions.Options इति विन्यासविकल्पानां नियन्त्रणार्थं .NET Core इत्यस्मिन् पुस्तकालयः अस्ति । एतत् विन्यासदत्तांशं (यथा appsettings.json सञ्चिकातः, वातावरणचरात्, अन्यविन्यासस्रोतात् वा) पठितुं, बन्धयितुं च दृढतया टङ्कितं मार्गं प्रदाति, अनुप्रयोगे च इन्जेक्ट् करोति इदं पुस्तकालयं .NET Core इत्यस्य भागः अस्ति, परन्तु .NET Framework अथवा अन्येषु .NET कार्यान्वयनेषु अपि उपयोक्तुं शक्यते ।
मूलविचारः


• विकल्पप्रतिमानः विकल्पप्रतिमानः विन्यासदत्तांशस्य समूहीकरणं प्रतिनिधितुं वर्गानां उपयोगं करोति । एते वर्गाः प्रायः सरलाः POCOs (Plain Old CLR Objects) भवन्ति येषु कतिपयानि गुणाः सन्ति ये विन्यासदत्तांशस्य कृते कुञ्जीनां अनुरूपाः सन्ति ।
• IOptions: IOptions<T> T प्रकारस्य विन्यासदत्तांशं प्राप्तुं अन्तरफलकस्य उपयोगः भवति । T प्रकारस्य विन्यासदत्तांशस्य पञ्जीकरणानन्तरं, भवान् निर्भरता-इञ्जेक्शन्-माध्यमेन अनुप्रयोगस्य अन्येषु भागेषु एतत् दत्तांशं प्राप्तुं शक्नोति ।
• IOptionsSnapshot: IOptionsSnapshot<T> यत्र अनुप्रयोगस्य चालनकाले विन्यासदत्तांशस्य पुनः लोडीकरणस्य आवश्यकता भवति तत्र परिदृश्यानां कृते उपयुक्तम् । प्रत्येकं अनुरोधे विन्यासदत्तांशस्य नूतनं स्नैपशॉट् प्रदाति ।
• IOptionsMonitor: IOptionsMonitor<T> वास्तविकसमये विन्यासदत्तांशस्य परिवर्तनस्य निरीक्षणार्थं उपयुज्यते । एतत् परिवर्तनसूचनाघटनां प्रदाति यत् विन्यासदत्तांशपरिवर्तनेन प्रवर्तयितुं शक्यते ।


2. उदाहरणम् : १.


मानातु यत् भवतां समीपे appsettings.json विन्याससञ्चिका अस्ति यस्मिन् केचन अनुप्रयोगसेटिंग्स् सन्ति:

  1. {
  2. "MySettings": {
  3. "SettingA": "value1",
  4. "SettingB": "value2"
  5. }
  6. }

प्रथमं एतानि सेटिङ्ग्स् प्रतिनिधितुं वर्गं परिभाषयन्तु :

  1. public class MySettings
  2. {
  3. public string SettingA { get; set; }
  4. public string SettingB { get; set; }
  5. }

ततः, Startup.cs इत्यस्य ConfigureServices मेथड् इत्यस्मिन् एतत् विन्यासवर्गं पञ्जीकरणं कुर्वन्तु:

 

  1. public void ConfigureServices(IServiceCollection services)
  2. {
  3. // 绑定配置
  4. services.Configure<MySettings>(Configuration.GetSection("MySettings"));
  5. // 其他服务注册...
  6. }

इदानीं यत्र यत्र आवश्यकं तत्र तत्र dependency injection मार्गेण एतानि सेटिङ्ग्स् प्राप्तुं शक्नुवन्ति:

  1. public class MyService
  2. {
  3. private readonly MySettings _mySettings;
  4. public MyService(IOptions<MySettings> options)
  5. {
  6. _mySettings = options.Value;
  7. }
  8. public void DoSomething()
  9. {
  10. Console.WriteLine(_mySettings.SettingA);
  11. // 使用 _mySettings...
  12. }
  13. }

Microsoft.Extensions.Options अनुप्रयोगस्य विन्यासदत्तांशस्य प्रबन्धनस्य अभिगमनस्य च सरलं तथापि शक्तिशाली मार्गं प्रदाति । दृढतया टङ्कितानां विन्यासवर्गाणां, निर्भरता-इञ्जेक्शनस्य च उपयोगेन, भवान् स्वस्य कोडं स्पष्टं, परिपालनीयं च कृत्वा स्वस्य अनुप्रयोगे विन्यासदत्तांशं सहजतया एकीकृत्य कर्तुं शक्नोति

5. ज्ञानबिन्दवः भवद्भिः ज्ञातव्याः

IOptions इति इति 

IOptionsSnapshot इति इति 

IOptionsMonitor इति इति 

Microsoft.Extensions.Options नामस्थानम् | 

System.Windows.नामस्थानं नियन्त्रयति |

6. स्रोतसङ्केतपता

GitHub - HeBianGu/WPF-ControlDemo: उदाहरणम्

GitHub - HeBianGu/WPF-ControlBase: Wpf-सङ्कुलित कस्टम् नियन्त्रण संसाधन पुस्तकालयः

GitHub - HeBianGu/WPF-Control: WPF हल्के नियन्त्रणं तथा च त्वचां कृत्वा पुस्तकालयः

7. अधिकं ज्ञातव्यम्

System.Windows.नामस्थानं नियन्त्रयति |

https://github.com/हेबियनगु

HeBianGu के व्यक्तिगत स्थान-HeBianGu के व्यक्तिगत मुखपृष्ठ-Bilibili Video