-1

バリデーションを書くために流暢なバリデーション 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() }
            };

したがって、項目の辞書をコンテキスト データに追加するには、辞書をループして追加する必要があります。最初のものは機能するが、直接割り当てが機能しない理由を見て驚いています。

4

2 に答える 2