バリデーションを書くために流暢なバリデーション 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() }
};
したがって、項目の辞書をコンテキスト データに追加するには、辞書をループして追加する必要があります。最初のものは機能するが、直接割り当てが機能しない理由を見て驚いています。