不可变的集合?

时间:2011-12-05 12:27:12

标签: c# asp.net

我使用只读集合来阻止用户更改我的缓存数据,但这些项目本身都是可复制的。 有没有办法防止这种行为?

米歇尔

3 个答案:

答案 0 :(得分:6)

使缓存的项目本身不可变,或者通过对象的副本

答案 1 :(得分:0)

您可以设置私有构造函数 - 因此只有内部项可以创建实例。

此外,您可以使用构造函数来放置readonly Values ....

答案 2 :(得分:0)

一种方法是同时拥有每个业务模型对象的不可变版本和可变版本。我在这里写了一篇文章:http://rickyhelgesson.wordpress.com/2012/07/17/mutable-or-immutable-in-a-parallel-world/