使用特性在 C# 中进行模型验证

鹿先生

我正在尝试按照本指南使用模型类中的属性验证一些非空属性

我想要做的是:

[Required(ErrorMessage = "Not null allowed for my var")]
public string MyNotNullVar;

我期待一种行为,即在代码的任何部分读取此变量时会引发异常并带有自定义错误消息(“我的 var 不允许为空”)。

我一直在尝试按照一些指南来实现它,但还没有找到任何解决方案。

我的最终目标是避免if(foo == null) throw new ArgumentNullException("foo");在模型声明中编写自动化。

我正在考虑类似于ModelState.IsValid但也可以在控制器上下文之外使用的东西如果无需手动添加“有效性检查”行即可完成检查,那就更好了。

任何想法:)?

赛比隆

首先,您无法从任何地方验证它,即使您将创建某种属性,您仍然被迫创建验证代码。

如果我是你,我会简单地(在这种情况下)编写静态方法,将这个对象作为参数,然后通过反射检查给定的属性。

例如:

public static bool HandleEmptyStringFields(this object @obj)
{
 //check if there are fields of type string and have given attribute, then validate 
 //each one and in case of being null just throw new custom exception
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章