我的一个用例需要存储来自单个事件生产者的“开始”和“停止”事件之间的所有事件。我们将使用可靠的参与者来处理这些数据并在收到“停止”事件后进行汇总。在开始和停止之间存储所有事件的直接方法是使用 List 类型。
// Init
var evts = new List<DataEvent>();
this.StateManager.TryAddStateAsync("events", evts);
// Fetch, add and save
var evts = this.StateManager.TryGetStateAsync<List<DataEvent>>("events");
evts.Add(newEvent);
this.StateManager.TrySaveStateAsync("events", evts);
据我了解,每次获取现有列表时,添加一个新项目并存储新的更新列表,StateManager 将序列化/反序列化整个数组。我的理解正确吗?
什么是这个解决方案的好选择?