2 回答

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊
我能想到的最好的方法是ISet<Example>
(使用 a HashSet<Example>
)覆蓋Example
'sGetHashCode
和方法。Equals
那應(yīng)該滿足你的第二個(gè)愿望。至于[Required]
屬性,您必須自己編寫代碼以檢查這些屬性是否不為空,然后再將其添加到ISet<Example>
. 這可能需要一些反射邏輯。

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊
這就是我最終的結(jié)果,它完全按照我想要Required的方式工作。
[AttributeUsage(AttributeTargets.Property)]
public class DictionaryRequiredAttribute : ValidationAttribute
{
public DictionaryRequiredAttribute() : base(() => "The {0} field is required and cannot contain null values.") { }
public override bool IsValid(object value)
{
if (value == null)
{
return false;
}
if (value is IDictionary dictValue)
{
foreach (var key in dictValue.Keys)
{
if (dictValue[key] == null)
{
return false;
}
}
}
return true;
}
}
主要是根據(jù)這里RequiredAttribute找到的執(zhí)行。
- 2 回答
- 0 關(guān)注
- 138 瀏覽
添加回答
舉報(bào)