मुझे लगता है कि आप वेब अनुप्रयोग से appsettings.json
फ़ाइल तक पहुंच बनाना चाहते हैं क्योंकि कक्षा पुस्तकालयों में डिफ़ॉल्ट रूप से appsettings.json
नहीं है।
मैं एक मॉडल क्लास बनाता हूं जिसमें गुण हैं जो appsettings.json
में किसी अनुभाग में सेटिंग्स से मेल खाते हैं।
appsettings.json में धारा
"ApplicationSettings": {
"SmtpHost": "mydomain.smtp.com",
"EmailRecipients": "[email protected];[email protected]"
}
मिलान मॉडल वर्ग
namespace MyApp.Models
{
public class AppSettingsModel
{
public string SmtpHost { get; set; }
public string EmailRecipients { get; set; }
}
}
फिर उस मॉडल वर्ग को पॉप्युलेट और डि कंटेनर में IOptions
संग्रह में जोड़ना (यह किया जाता है स्टार्टअप क्लास की Configure()
विधि में)।
services.Configure<AppSettingsModel>(Configuration.GetSection("ApplicationSettings"));
// Other configuration stuff
services.AddOptions();
फिर आप उस वर्ग को किसी भी विधि से एक्सेस कर सकते हैं जिसे फ्रेमवर्क कन्स्ट्रक्टर में पैरामीटर के रूप में जोड़कर कॉल करता है। ढांचा कन्स्ट्रक्टर को कक्षा खोजने और प्रदान करने में संभालता है।
public class MyController: Controller
{
private IOptions<AppSettingsModel> settings;
public MyController(IOptions<AppSettingsModel> settings)
{
this.settings = settings;
}
}
फिर जब एक वर्ग पुस्तकालय में एक विधि सेटिंग्स की जरूरत है, मैं या तो सेटिंग्स को एकल पास या संपूर्ण वस्तु गुजरती हैं।
स्रोत
2016-07-15 14:50:41
[सी # कक्षा लाइब्रेरी में उपयोग करना IConfiguration] (https://stackoverflow.com/questions/27880433/using-iconfiguration-in-c-sharp-class-library) –
की संभावित डुप्लिकेट का एक उदाहरण देख सकते हैं क्या एक ही मुद्दा है कि [सी # कक्षा पुस्तकालय में आईसीओफ़िगरेशन का उपयोग] (https://stackoverflow.com/q/27880433/1647238), [मेरा उत्तर] देखें (https://stackoverflow.com/a/47645131/1647238) –