मैं एक डीएलएल प्रोजेक्ट लिख रहा हूं जिसमें मैं EnterpriseLibrary.Caching.NetCore मेमोरी कैशिंग के लिए। इस पैकेज के लिए app.config की आवश्यकता है। अब जब मैं अपने कंसोल एप्लिकेशन में इस डीएलएल को कॉल करता हूं, तो मैं अपने कंसोल एप्लिकेशन में भी app.config जोड़ने के लिए बाध्य हूं। इसलिए मुझे अपने कंसोल एप्लिकेशन से app.config को हटाना होगा।

2
vikky 10 सितंबर 2019, 08:46

1 उत्तर

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

मुझे लगता है कि आप एक अनुकूलित कॉन्फ़िगरेशन से एंटरप्राइज़ लाइब्रेरी कंटेनर (IServiceLocator) को मैन्युअल रूप से सेट करके एंटरप्राइज़ लाइब्रेरी कैशिंग ब्लॉक को प्रोग्रामेटिक रूप से प्रारंभ कर सकते हैं। इस प्रकार, एप्लिकेशन कॉन्फ़िगरेशन फ़ाइल को नहीं पढ़ा जाना चाहिए। उदाहरण के लिए :

var configSource = new DictionaryConfigurationSource();
var cacheSettings = new CacheManagerSettings();

configSource.Add(CacheManagerSettings.SectionName, cacheSettings);
var storageConfig = new CacheStorageData("NullBackingStore", typeof(NullBackingStore));
cacheSettings.BackingStores.Add(storageConfig);

var cacheManagerData = new CacheManagerData(
    "Cache Manager",
    60,
    1000,
    10,
    storageConfig.Name);
cacheSettings.CacheManagers.Add(cacheManagerData);
cacheSettings.DefaultCacheManager = "Cache Manager";
cacheSettings.DefaultCacheManager = cacheManagerData.Name;

EnterpriseLibraryContainer.Current = EnterpriseLibraryContainer.CreateDefaultContainer(configSource);

संपादित करें: नोट मैंने पहले ही .NET Framework पर एंटरप्राइज़ लाइब्रेरी के लिए इस प्रकार के कोड का उपयोग किया है, लेकिन मुझे लगता है कि यह .Net core पर समान होना चाहिए।

1
Aloene 10 सितंबर 2019, 08:30