我正在使用验证应用程序块 - 企业库来验证发送到我的 WCF 服务操作的参数。例如,某个操作要求参数为 1 或 6,如下所示:
[OperationContract(Name="GetEmployeesByRegion")]
[FaultContract(typeof(ValidationFault))]
List<Employees> GetEmployeesByRegion([DomainValidator(1,6)]int regionId);
这工作得很好,即发生验证错误,但是当客户端调用服务时,会抛出通用 System.ServiceModel.FaultException。一条消息表明:“此故障的创建者未指定原因。”
现在,我可以在服务校准之前自己检查参数并引发自定义错误,但这似乎违背了使用验证应用程序块对参数进行基于属性的验证的目的。是否有自定义验证错误返回的错误?我也有可能做错了什么。我只想让调用者知道他/她应该在异常消息中传入 1 或 6。这可能吗?