日期:2014-05-16  浏览次数:20387 次

请教C#中数据验证模型
之前我们的数据验证(不包括js)都是在UI页面的后台完成的。就比如我要判断一个栏位number的值必须大于0,那么我们就会写
if (convert.toint32(this.number.text)<=0)
throw new exception("数量必须大于0")

但现在我想把这些验证都移到BLL层和Model层(不是mvc架构),请问大家有什么好模型处理没?

我最想的解决方法就是像mvc的model验证一样,在model层中定义规则和异常提示,在bll层验证并返回异常结果。

求大家提供思路啊。
------解决方案--------------------
问题不大,不过需要你思维方式地改变。这个是典型AOP应用,所以首先需要你有AOP方面地背景知识

其次是手段,手段上在C#里主要是动态代理和静态编译植入。

动态代理类博客园很多介绍我不详说了,只提一点,如果使用动态代理,你整体调用结构需要改一下,调用地时候必须先使用代理类统一代理访问

静态编译植入,是在编译期就直接把代码植入进去,不需要怎么调整你现有地调用代码,当然缺点是这东西是机器生成地,在编译前你也无法肯定这些注入进去地代码是否能正常运行,所以在植入前最好先对你的植入代码做好完备的单元测试