Lütfen bana bir örnek gösterebilir misiniz? Web sitesinde yer alan sayfaların çoğunda sıkça kullanılacak bazı nesneleri önbelleğe almak istiyorum? Ben 5.Asp.net çekirdeğinde kaynakları nasıl önbelleğe alırım?
Çoğunlukla sadece kısayol öznitelik 6.
Lütfen bana bir örnek gösterebilir misiniz? Web sitesinde yer alan sayfaların çoğunda sıkça kullanılacak bazı nesneleri önbelleğe almak istiyorum? Ben 5.Asp.net çekirdeğinde kaynakları nasıl önbelleğe alırım?
Çoğunlukla sadece kısayol öznitelik 6.
startup.cs
yılında tüm önbelleğe başlamak için yeterli bilgi vermelidir
Umarım HomeController için:
private IMemoryCache cache;
public HomeController(IMemoryCache cache)
{
this.cache = cache;
}
Sonra önbelleği ayarlayabilirsiniz:
public IActionResult Index()
{
var list = new List<string>() { "lorem" };
this.cache.Set("MyKey", list, new MemoryCacheEntryOptions()); // Define options
return View();
}
(herhangi options ayarlanırken ile)
Ve önbellekten okuyun:
public IActionResult About()
{
ViewData["Message"] = "Your application description page.";
var list = new List<string>();
if (!this.cache.TryGetValue("MyKey", out list)) // read also .Get("MyKey") would work
{
// go get it, and potentially cache it for next time
list = new List<string>() { "lorem" };
this.cache.Set("MyKey", list, new MemoryCacheEntryOptions());
}
// do stuff with
return View();
}
Böyle OutputCache gibi hiçbir ASP.net MVC avaiable kullanıma bağlıyor şu anda düşünmek MVC bunu yapmanın tavsiye yolu ne olacağını emin değilim ve Önbellek sağlayıcı ASP.net'i dolaylı olarak kullanacaktır.
Aynı şey ASP.net 5 vnext dosyasında kullanılabilir. https://github.com/aspnet/Caching
Farklı önbellek mekanizması kullanılabilir ve Bellek Önbelleği'ni kullanabilir ve kendi özniteliğinizi oluşturabilirsiniz.
Umarım bu size yardımcı olur.
ASP.NET Çekirdeğinde yapılması önerilen yol, IMemoryCache
kullanmaktır. DI ile alabilirsiniz. Örneğin, CacheTagHelper
bunu kullanır.
public void ConfigureServices(IServiceCollection services)
{
// Add other stuff
services.AddCaching();
}
Sonra denetleyicisi, yapıcı, örneğin üzerine bir IMemoryCache
ekleyin: Size nesneler :)
Ne yazık ki bu bağlantı şimdi 404s – NikolaiDante
@NikolaiDan te - Bunun nedeni, adını AspNetCore, https://github.com/aspnet/Mvc/blob/dev/src/Microsoft.AspNetCore.Mvc.TagHelpers/CacheTagHelper.cs –
@ErikFunkenbusch ah olarak değiştirdiği için. Bu yazıyı güncelledim :-) – NikolaiDante
fyi, şimdi startup.cs içinde services.AddMemoryCache() var. Herhangi bir yayın öncesi yazılım gibi, bu yine değişebilir. – SergioL