我正在使用流利的验证 API 来编写验证。
我在课堂上遇到了一处internal set
房产ValidationContext
。
public class ValidationContext {
public Dictionary<string, object> RootContextData { get; internal set; } = new Dictionary<string, object>();
}
我在这个问题中遇到了内部设置属性。所以,我可以像这样设置字典的值
var rowItemContext = new ValidationContext();
rowItemContext.RootContextData.Add("ab", new object());//this works
上面的代码将一个项目添加到RootcontextData
作品中。
但是以下将另一个字典直接分配给 RootContextData 的行会导致编译时错误。
无法将属性或索引器“ValidationContext.RootContextData”分配给——它是只读的
rowItemContext.RootContextData = new Dictionary<string, object>()
{
{ "ab", new object() }
};
因此,要将项目字典添加到上下文数据中,我必须遍历要添加的字典。我很惊讶为什么第一个有效但不是直接分配。