我正在使用v4.0。
更新:
到目前为止,我已经一起破解了:
public class AllFilter : IFilter
{
#region IFilter Members
IndexCollection IFilter.GetIndexCollection()
{
return new IndexCollection();
}
MatchOptions IFilter.GetMatchOptions()
{
return MatchOptions.MatchAll;
}
#endregion
}
public class CacheMonitorController : Controller
{
public ActionResult Index()
{
var results =
from result in ApplicationNamespace.GlobalNamespace.Query(new AllFilter()).OfType<StateServerKey>()
group result by result.AppId;
var b = new StringBuilder();
foreach (var result in results)
{
var cache = CacheFactory.GetCache(result.Key);
b.AppendLine(cache.Name);
}
return this.Content(b.ToString(), "text/plain");
}
}
不幸的是,即使在创建缓存时肯定有一个名称,缓存的名称也总是以
null
出现。该名称肯定需要在UI中识别,因此我需要一种获取它的方法。 最佳答案
显然,在v4.0中无法执行此操作-存储本身的键以及值的键都存储为散列(以uint
的形式),因此,除非NamedCache为使用实际名称检索,则无法知道该名称。
唯一的选择是跟踪缓存中另一个存储区中键的字符串值。
ScaleOut软件的Mark Waterman表示,检索名称的功能将在v5.0中提供,该功能将于2009年春季发布。
关于c# - 如何从ScaleOut StateServer(SOSS)获取可用的NamedCache对象的列表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/503580/