उदाहरण के लिए, ऐप को कॉन्फ़िगर करने में, आपको आमतौर पर मिलता है

app.AddConfiguration(options => 
{
    options.DoThing();
    options.ReadParameters(parameters);
    options.UseOtherConfig(config =>
    {
        config.DoConfigThing(options.SomeValue);
    }
}

मैं मानसिक रूप से कैसे विश्लेषण करूं कि यहां क्या हो रहा है?

options और config ऑब्जेक्ट कहां से आते हैं? क्या वे निर्दिष्ट इंटरफेस से फ्लाई पर बनाए गए हैं (उदाहरण के लिए यदि इसमें हस्ताक्षर app.AddConfiguration(IOptions options) था? दूसरा घोंसला कैसे एक मूल्य प्राप्त करता है यदि कुछ भी सेट नहीं है? क्या मुझे यह मान लेना चाहिए कि यह एएसपी.नेट द्वारा रनटाइम पर कहीं सेट किया गया है, और मुझे "देखभाल" नहीं करनी चाहिए?

0
komodovaran_ 21 सितंबर 2020, 12:09

1 उत्तर

सबसे बढ़िया उत्तर

आप AddConfiguration को एक फ़ंक्शन पास करेंगे जो इस तरह दिखता है:

public void HandleAddConfiguration(IConfiguration options) {
  options.DoThing();
  options.ReadParameters(parameters);
  options.UseOtherConfig(config =>
  {
     config.DoConfigThing(options.SomeValue);
  }
}

और फिर इसे पसंद करें

app.AddConfiguration(HandleAddConfiguration);

यह वाक्यविन्यास चीजों को थोड़ा और स्पष्ट कर सकता है। आप जिस सिंटैक्स का उपयोग कर रहे हैं उसे lambda-expressions कहा जाता है .

इस लैम्ब्डा फ़ंक्शन को AddConfiguration फ़ंक्शन द्वारा इस तरह बुलाया जाएगा (सरलीकृत उदाहरण):

public void AddConfiguration(Action<IConfiguration> configAction) {
 IConfiguration config = new Configuration();
 configAction(config);
}

उम्मीद है कि यह समझ में आता है।

2
Peter Keuter 21 सितंबर 2020, 12:36