.NET 4 Frameworkには、キャッシュサポートが組み込まれていることを理解しています。誰でもこれに関する経験がありますか、これについてもっと知るには良いリソースを提供することができますか?.NET 4キャッシュサポート
私はオブジェクト(主にエンティティ)をメモリにキャッシュし、おそらくSystem.Runtime.Cachingを使用していると言います。
.NET 4 Frameworkには、キャッシュサポートが組み込まれていることを理解しています。誰でもこれに関する経験がありますか、これについてもっと知るには良いリソースを提供することができますか?.NET 4キャッシュサポート
私はオブジェクト(主にエンティティ)をメモリにキャッシュし、おそらくSystem.Runtime.Cachingを使用していると言います。
より一般的な名前空間のSystem.Web.Caching
と似ていると思いますが、this、System.Runtime.Caching
にいるとします。
は、
is-there-some-sort-of-cachedependency-in-system-runtime-cachingと、
performance-of-system-runtime-caching
とスタック上http://deanhume.com/Home/BlogPost/object-caching----net-4/37を参照してください。
有用でしょう。私自身は Here
MSDN記事"ASP.NET Caching: Techniques and Best Practices"はすばらしいスタートです。
は良い出発点であるあなたが
リンクの下には.Netframework 4.0のSystem.Runtime.Cachingを参照しているホープ単純なオブジェクトをメモリにキャッシュするだけで、System.Runtime.Caching名前空間のMemoryCacheクラスを参照している可能性があります。ページの最後にそれを使用する方法の少しの例があります。
編集:実際にこの回答のためにいくつかの作業を行ったように見えるように、ここにそのページのサンプルがあります。 :)
private void btnGet_Click(object sender, EventArgs e)
{
ObjectCache cache = MemoryCache.Default;
string fileContents = cache["filecontents"] as string;
if (fileContents == null)
{
CacheItemPolicy policy = new CacheItemPolicy();
List<string> filePaths = new List<string>();
filePaths.Add("c:\\cache\\example.txt");
policy.ChangeMonitors.Add(new
HostFileChangeMonitor(filePaths));
// Fetch the file contents.
fileContents =
File.ReadAllText("c:\\cache\\example.txt");
cache.Set("filecontents", fileContents, policy);
}
Label1.Text = fileContents;
}
古典的なASP.NETキャッシュのように、依存関係をキャッシュに適用できることが示されているので興味深いです。ここでの大きな違いは、System.Webアセンブリに依存していないことです。
私はそれを利用していませんでしたが、あなた」の場合:
私はこれを使用して、ドキュメントが不足していることを発見しました。基本的にSystem.Webのキャッシュと同じように使うことができると私は理解しています。 – goalie7960
フレームワーク内のMemoryCacheは良い場所ですが、メモリキャッシュよりも簡単なAPIを持ちロック機能やその他の便利な機能を備えているため、LazyCacheと考えることもできます。それはnugetで提供されています:PM> Install-Package LazyCache
// Create our cache service using the defaults (Dependency injection ready).
// Uses MemoryCache.Default as default so cache is shared between instances
IAppCache cache = new CachingService();
// Declare (but don't execute) a func/delegate whose result we want to cache
Func<ComplexObjects> complexObjectFactory =() => methodThatTakesTimeOrResources();
// Get our ComplexObjects from the cache, or build them in the factory func
// and cache the results for next time under the given key
ComplexObject cachedResults = cache.GetOrAdd("uniqueKey", complexObjectFactory);
私は最近、あなたが役に立つかもしれませんgetting started with caching in dot netについては、この記事を書きました。
(免責事項:私はLazyCacheの著者だ)何の
キャッシュ? Entity Framework、WCF、またはアプリケーションサーバーを指していますか? – weismat
'System.Runtime.Caching'明らかに;-) – Jodrell
まだ.NET 4.5にアップグレードしていない場合は、次のバグに注意する必要があります:http://stackoverflow.com/a/15715990/13087 – Joe