所以我们有一个向客户端提供一些对象的 WCF 服务。我们的 wcf 服务从数据访问层 (DAL) 获取数据。DAL 从 API 获取数据并将其格式化为我们可以使用的对象。对于大多数对象,这很有效。
但是我们还需要来自 API 的对象列表,并且对象不会改变。针对 API 的查询需要 15 到 20 秒。对同一数据多次运行此查询的方式很长。所以我们想将列表存储在内存中。因为 DBA 不是我们最好的朋友,SQLite 或 SQL CE 不是一个选择。
现在我们有了类似的东西,第一次加载组时,我们将它们存储在私有静态变量中。这是做这样的事情的正确方法,还是有更好的方法?
public static class GroupStore
{
private static DTO.Group[] _groups;
public static DTO.Group[] GetAll()
{
if (_groups == null)
{
var dal = PluginHandler.Instance.GetPlugin();
_groups = dal.GetAll();
}
return _groups;
}
}