2015-11-20 11 views
6

मैं .NET 4.6 टिल .NET कोर से कुछ कोड पोर्ट कर रहा हूं और मेमोरी कैश के साथ कुछ समस्याओं में चला गया हूं। 4.6 कोड कैश को तुरंत चालू करने के लिए MemoryCache.Default का उपयोग कर रहा है, लेकिन ऐसा लगता है कि .NET कोर में उपलब्ध नहीं है। क्या .NET कोर में इसके बराबर कोई समकक्ष है या क्या मुझे अपनी खुद की मेमोरी कैश को सिंगलटन के रूप में नया करना चाहिए और इसे आईओसी के माध्यम से इंजेक्ट करना चाहिए?MemoryCache.Default .NET कोर में उपलब्ध नहीं है?

+4

यह उससे थोड़ा अधिक है, पूरी प्रणाली। रनटाइम। कैशिंग नेमस्पेस .NETCore में गायब है। इस तरह यह "मूल" होना चाहिए, आपको सामान को हटाकर कभी भी .NET का दुबला छोटा संस्करण मिलता है। Nuget.org –

+1

पर उपलब्ध कई विकल्प हां, लेकिन माइक्रोसॉफ्ट में स्थित .NET कोर में मेमोरी कैश का एक अलग कार्यान्वयन है। फ्रेमवर्क। कैशिंग.मेमरी। मैंने इस कार्यान्वयन का उपयोग करने के लिए कोड को फिर से लिखा है लेकिन इसमें सटीक एपीआई और मेमोरी कैश नहीं है। डीफॉल्ट प्रॉपर्टी मौजूद नहीं है। मुझे लगता है मुझे बस अपना खुद का रोल करना होगा :) – henningst

उत्तर

3

आम तौर पर आप सिंगलटन IMemoryCache का प्रयोग करेंगे, लेकिन आप यह भी कैश

mycache = new MemoryCache(memoryCacheOptions)

बना सकते हैं यदि आप कुछ और अधिक जटिल चीज़ें करने की जरूरत है memoryCacheOptions के माध्यम से इंजेक्ट किया जा सकता - IOptions<MemoryCacheOptions>

https://docs.asp.net/projects/api/en/latest/autoapi/Microsoft/Extensions/Caching/Memory/IMemoryCache/