2015-02-01 17 views

cevap

13

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(); 
} 
+2

fyi, şimdi startup.cs içinde services.AddMemoryCache() var. Herhangi bir yayın öncesi yazılım gibi, bu yine değişebilir. – SergioL

3

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.

15

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 :)

+0

Ne yazık ki bu bağlantı şimdi 404s – NikolaiDante

+0

@NikolaiDan te - Bunun nedeni, adını AspNetCore, https://github.com/aspnet/Mvc/blob/dev/src/Microsoft.AspNetCore.Mvc.TagHelpers/CacheTagHelper.cs –

+0

@ErikFunkenbusch ah olarak değiştirdiği için. Bu yazıyı güncelledim :-) – NikolaiDante

İlgili konular