在我的服务中,除了某些必需参数和所有输入参数之外的所有方法都封装在消息合同中。
现在,我们正在验证每个服务方法中的输入,就像在所有服务方法中复制验证逻辑一样。有什么方法可以将所有这些验证移动到公共场所,而且我不希望我的服务方法被执行,因为输入无效。
感谢您的建议。
答案 0 :(得分:0)
是的,您可以对每个MessageContract
请求使用FluentValidator。
您可以为具有通用验证规则的请求编写commom验证器。
Ex :如果您想要CreateEmployeeRequest
,UpdateEmployeeRequest
中的验证员工个人资料,那么您可以为员工档案(EmployeeProfileValidator
)编写commom验证器,在Create&中使用此验证器更新员工请求验证器..
答案 1 :(得分:0)
企业资源库Validation Application Block有一个Integration with WCF模块。
它将输入验证实现为WCF参数检查器。如果参数验证失败,则永远不会调用您的方法。