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> वास्तविकसमये विन्यासदत्तांशस्य परिवर्तनस्य निरीक्षणार्थं उपयुज्यते । एतत् परिवर्तनसूचनाघटनां प्रदाति यत् विन्यासदत्तांशपरिवर्तनेन प्रवर्तयितुं शक्यते ।
मानातु यत् भवतां समीपे appsettings.json विन्याससञ्चिका अस्ति यस्मिन् केचन अनुप्रयोगसेटिंग्स् सन्ति:
- {
- "MySettings": {
- "SettingA": "value1",
- "SettingB": "value2"
- }
- }
प्रथमं एतानि सेटिङ्ग्स् प्रतिनिधितुं वर्गं परिभाषयन्तु :
- public class MySettings
- {
- public string SettingA { get; set; }
- public string SettingB { get; set; }
- }
ततः, Startup.cs इत्यस्य ConfigureServices मेथड् इत्यस्मिन् एतत् विन्यासवर्गं पञ्जीकरणं कुर्वन्तु:
- public void ConfigureServices(IServiceCollection services)
- {
- // 绑定配置
- services.Configure<MySettings>(Configuration.GetSection("MySettings"));
-
- // 其他服务注册...
- }
इदानीं यत्र यत्र आवश्यकं तत्र तत्र dependency injection मार्गेण एतानि सेटिङ्ग्स् प्राप्तुं शक्नुवन्ति:
- public class MyService
- {
- private readonly MySettings _mySettings;
-
- public MyService(IOptions<MySettings> options)
- {
- _mySettings = options.Value;
- }
-
- public void DoSomething()
- {
- Console.WriteLine(_mySettings.SettingA);
- // 使用 _mySettings...
- }
- }
Microsoft.Extensions.Options अनुप्रयोगस्य विन्यासदत्तांशस्य प्रबन्धनस्य अभिगमनस्य च सरलं तथापि शक्तिशाली मार्गं प्रदाति । दृढतया टङ्कितानां विन्यासवर्गाणां, निर्भरता-इञ्जेक्शनस्य च उपयोगेन, भवान् स्वस्य कोडं स्पष्टं, परिपालनीयं च कृत्वा स्वस्य अनुप्रयोगे विन्यासदत्तांशं सहजतया एकीकृत्य कर्तुं शक्नोति
Microsoft.Extensions.Options नामस्थानम् |
System.Windows.नामस्थानं नियन्त्रयति |
GitHub - HeBianGu/WPF-ControlDemo: उदाहरणम्
GitHub - HeBianGu/WPF-ControlBase: Wpf-सङ्कुलित कस्टम् नियन्त्रण संसाधन पुस्तकालयः
GitHub - HeBianGu/WPF-Control: WPF हल्के नियन्त्रणं तथा च त्वचां कृत्वा पुस्तकालयः
System.Windows.नामस्थानं नियन्त्रयति |
HeBianGu के व्यक्तिगत स्थान-HeBianGu के व्यक्तिगत मुखपृष्ठ-Bilibili Video