したがって、クライアントにオブジェクトを提供する 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;
}
}