温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C#中如何实现实体验证

发布时间:2021-12-01 10:52:22 来源:亿速云 阅读:161 作者:小新 栏目:编程语言

这篇文章给大家分享的是有关C#中如何实现实体验证的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

环境:

Windows 2008, VS 2008 SP1, Asp.Net Mvc 1.0

一. 可能是最原始的验证代码

为了让问题尽量简单,我们就拿一个简单得不能再简单的User类开刀吧。

C#中如何实现实体验证

现在我们要在User类里面加一个方法用于验证User实例的合法性,相信很多人写过如下类似的代码:

C#中如何实现实体验证

Check()方法很单纯的为User类的属性应用各种规则,然后返回非法的提示信息集。

验证的时候只是简单的调用一下实体的Check()方法即可:

C#中如何实现实体验证

好吧,我承认,一般情况下这个方法似乎够用了,只不过,很多人看到一连串的if可能会开始抓狂了,是呀,我也不喜欢,那就想个最即便的办法消除它们吧。

二. 基于C#3.0新特性的尝试

为了消除if,考虑把那些验证规则用一条线链起来,于是:

编写实体类的验证扩展方法如下:

C#中如何实现实体验证

那么实体的Check()方法相应改为:

C#中如何实现实体验证

这样,我们通过扩展方法,消除了if,但是我们把验证规则链了起来,并已异常的方式来抛出实体非法信息,那么每次验证只能得到一条验证信息,这显然往往不符合实际情况。想想..

三. 继续演进

接上,为了得到验证错误信息集合,改进:

为了让代码看起来更像那么回事,给实体加个基类吧,就叫EntityBase了。

C#中如何实现实体验证

然后编写一个验证类:

C#中如何实现实体验证

然后看下修改后的Check()方法,这个验证类的作用就一目了然了:

C#中如何实现实体验证

不用解释吧?其实也是链起来,同时返回验证错误信息集合,看看结果:

C#中如何实现实体验证

C#中如何实现实体验证

感谢各位的阅读!关于“C#中如何实现实体验证”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI