2 回答
TA贡献1809条经验 获得超8个赞
我能想到的最好的方法是ISet<Example>
(使用 a HashSet<Example>
)覆盖Example
'sGetHashCode
和方法。Equals
那应该满足你的第二个愿望。至于[Required]
属性,您必须自己编写代码以检查这些属性是否不为空,然后再将其添加到ISet<Example>
. 这可能需要一些反射逻辑。
TA贡献1866条经验 获得超5个赞
这就是我最终的结果,它完全按照我想要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;
}
}
主要是根据这里RequiredAttribute找到的执行。
- 2 回答
- 0 关注
- 117 浏览
添加回答
举报