このスレッドMemoryCache Empty : Returns null after being setで言及されている Cache の破棄に関する問題の回避策を実装するのに苦労しています。
私の最新の試みには、インスタンスを取得する次のコードがあり、提案どおりにラップされ、using ステートメントでキャッシュが破棄されるのを抑制します。
private static CacheDl _instance;
public static CacheDl Instance
{
get
{
if (_instance == null)
{
using (ExecutionContext.SuppressFlow())
{
_instance = new CacheDl();
}
}
return _instance;
}
}
private static ObjectCache Cache { get { return MemoryCache.Default; } }
もちろん、これは機能しません..キャッシュの「ゲッター」を同様のものでラップしようとしましたが、まだ取り決めはありません。
また、大きな pollingInterval を指定して動作を完全に抑制しようとしましたが、まだ成功していません。
private ObjectCache _cache;
private ObjectCache Cache
{
get
{
using (ExecutionContext.SuppressFlow())
{
return _cache ?? (_cache = new MemoryCache("my-cache", new NameValueCollection { { "pollingInterval", "30:00:00" } }));
}
}
}
あなたはそれを推測しました、運が悪いです。どんな助けでも大歓迎です。
ところで、私はマイクロソフトに上記の修正パックを既に要求しましたが、要求を送信してから 4 時間経ってもまだ何も連絡がありません..
正直なところ、.NET 4.5 以外のシステムでこれを機能させるためにハッキングする必要がないように、これが公式の Windows Update にまとめられることを本当に望んでいます。
更新: 具体的には、推奨される回避策をどのように実装するつもりなのかを知りたいです。誰かがこれを実装する方法の例を示してもらえますか?