【发布时间】:2018-01-20 06:14:42
【问题描述】:
我一直在研究Akka.net bootcamp,并根据我读到的有关消息的内容遇到了一些令我困惑的事情。
在messaging documentation 中声明消息应该是不可变的。
在训练营的第 2 单元中,Initialize Chart 消息似乎在几个层面上是可变的。
public class InitializeChart
{
public InitializeChart(Dictionary<string, Series> initialSeries)
{
InitialSeries = initialSeries;
}
public Dictionary<string, Series> InitialSeries { get; private set; }
}
首先,可以修改字典内容(添加、删除等)。其次是字典项目,Series, 是可变的。
我有两个问题:
1) 我对如何构建 Akka.net 消息的解释是否有误? (这个例子其实是对的。)
2) Akka.net 消息是否应该一直不可变?例如,如果此消息更改为:
public class InitializeChart
{
public InitializeChart(Dictionary<string, Series> initialSeries)
{
InitialSeries = new ReadOnlyDictionary<string, Series>(initialSeries);
}
public IReadOnlyDictionary<string, Series> InitialSeries { get; private set; }
}
这会满足 Akka.net 消息的要求,还是应该让 Series 元素也是不可变的?
【问题讨论】:
标签: c# .net immutability actor akka.net