これは予想通り簡単ではありませんが、実行可能です。
オブジェクトがAppFabricキャッシュに追加されると、その領域を指定するかどうかに関係なく、オブジェクトが領域に移動します。キャッシュが作成されると、デフォルト領域のセットが作成されます(私のテストリグ上に1024個、Default_Region_0000
、Default_Region_0001
など)、アイテムがキャッシュに追加されると、彼らが入る地域
ので、名前の地域の外にキャッシュ内のオブジェクトの総数を見つけるために、あなたがデフォルト領域の一人一人のためにGetObjectsInRegionを実行する必要があります。
int totalItemCount = 0;
foreach (string regionName in cache.GetSystemRegions())
{
totalItemCount += cache.GetObjectsInRegion(regionName).Count();
}
これらの1024地域の複雑さを考えると、Iすべてのオブジェクトが指定された領域内になければならないという納得のいくケースを作ることができると考えています。そのためのコストは実質的になく、潜在的なメリットはキャッシュ内のオブジェクトの数を確認することです。これが共通の要件である場合は、これをDataCacheクラスの拡張メソッドにすることも考えられます。
魅力的な作品は、大変感謝しています。 – downatone
名前付きリージョンは、参加しているノード全体に分散されず、分散クラスターを大幅に評価します。 – andrewbadera
LINQified: 'cache.GetSystemRegions()。SelectMany(regionName => cache.GetObjectsInRegion(regionName))。Count()' –