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