使用公共静态属性字典并将静态私有字典包装在里面。然后你只需要关心可变或不可变类型,第一个你需要在包装器中迭代。这允许您阅读字典,但不能编辑它(不是条目,也不是整个参考),并可以选择允许使用您喜欢的任何身份验证模型在 set{} 部分内进行编辑。
(我一直在寻找不同的东西,比如并行编码中的静态性能,看到了这个搜索结果,发现缺少包装器方法。)
对于那些不知道包装是什么的人,这里有一个非静态示例(您可以轻松添加静态关键字):
public Dictionary<string, Boolean> Access
{
get
{
// Same here, iterate if needed..
return new Dictionary<string, Boolean>(prv_Access);
}
set
{
MainWindow.NewSession.Renew();
if (MainWindow.NewSession.Actual)
{
prv_HistoryAccess.Add(DateTime.Now, new Dictionary<string, Boolean>(prv_Access));
// Here you would need to iterate when you deal with mutables..
prv_Access = value;
}
}
}