【发布时间】:2013-05-17 05:40:08
【问题描述】:
在客户端-服务器架构中使用 DTO 时,您可以在客户端进行一些验证以检查 DTO 对象。当 DTO 在转换回业务对象后被发送回服务器时,可以对其进行一些服务器端验证。所以这里似乎存在一些逻辑代码重复,为了验证 DTO 和业务对象,我怎样才能删除这个代码重复?
【问题讨论】:
在客户端-服务器架构中使用 DTO 时,您可以在客户端进行一些验证以检查 DTO 对象。当 DTO 在转换回业务对象后被发送回服务器时,可以对其进行一些服务器端验证。所以这里似乎存在一些逻辑代码重复,为了验证 DTO 和业务对象,我怎样才能删除这个代码重复?
【问题讨论】:
将验证和 DTO 代码放在客户端和服务器项目都引用的公共项目中。
【讨论】:
如果您有简单的验证,例如“需要此属性”或“此 int 属性必须在 x..y 范围内”,您可以使用 Data Annotations。这些可以在客户端和服务器端使用Validator 类进行验证。根据您的前端,您的视图也可以使用这些来检查用户输入。
Validator.ValidateObject 方法返回一个验证结果列表,为每个失败的验证提供错误消息。
【讨论】: