1
匿名クラスのリスト<をキャッシュに入れることができません。Azure appfabricキャッシュ、LinqからSQLへの匿名クラスのシリアライズの問題
var cache = new DataCacheFactory().GetCache("default");
var parts = somethingIQueryable.Select(i => new { i.s1, i.s2 });
cache.Put("somekey", parts.ToList(), TimeSpan.FromMinutes(2));
これは、シリアル化例外をスローします。私はこのようなクラスにデータを置く場合は、それは動作します:
public class A { public string s1, public string s2 }
var cache = new DataCacheFactory().GetCache("default");
var parts = somethingIQueryable.Select(i => new A { s1 = i.s1, s2 = i.s2 });
cache.Put("somekey", parts.ToList(), TimeSpan.FromMinutes(2));
私はむしろかかわらず、キャッシュに入ったデータのすべての少しのためのクラスを定義する必要はないだろう、とへの道があるかどう思っていました最初の例を動作させますか?
Booo。 ASP.Netキャッシュはそれをうまく処理することができますが、それはシリアル化など何もせずにオブジェクト自体をメモリに格納することを意味します。 – Toodleey
私はこれが正しいと信じています。 – ChrisBint
..もちろん、メモリに格納する利点(シリアル化する必要はありません)は非常に不利です - キャッシュはプロセス全体で共有されず、耐久性が低く、Webサーバー上のメモリ圧迫などですオプションを重視して電話をかけるだけです... –