在失败时将验证结果从WCF服务(使用EF4数据处理)传递到MVC3客户端的方法
我实现了一个ASP.NET MVC3应用程序,通过WCF服务访问数据。 WCF服务使用EF4.1访问实体的DBContext和POCO类的数据。 我可以在服务器端使用数据验证属性对属性进行注释,还可以通过定义自定义验证属性(派生自)或通过实现来实现自定义验证 但我有一个问题:如果验证失败,那么将验证错误信息从WCF传递到客户端,然后在MCV3客户端中使用它的最佳方法是什么 正如我对WCF的理解,客户机和WC服务之间交换的每个数据都应该是数据契约的一部分,并且不应该使用异常作为服务器和客户机之间传递有意义信息的方式(比如抛出ValidationException,并为验证失败信息设置额外属性) 同样在使用EF的WCF中,我调用dbContext.SaveData(),但若数据无效,它会抛出异常,我不希望出现异常 因此:在失败时将验证结果从WCF服务(使用EF4数据处理)传递到MVC3客户端的方法,wcf,validation,entity-framework-4,wcf-client,Wcf,Validation,Entity Framework 4,Wcf Client,我实现了一个ASP.NET MVC3应用程序,通过WCF服务访问数据。 WCF服务使用EF4.1访问实体的DBContext和POCO类的数据。 我可以在服务器端使用数据验证属性对属性进行注释,还可以通过定义自定义验证属性(派生自)或通过实现来实现自定义验证 但我有一个问题:如果验证失败,那么将验证错误信息从WCF传递到客户端,然后在MCV3客户端中使用它的最佳方法是什么 正如我对WCF的理解,客户机和WC服务之间交换的每个数据都应该是数据契约的一部分,并且不应该使用异常作为服务器和客户机之间传
谢谢您可以使用两种方法:
- 使用标准响应数据契约获得成功,使用
获得验证失败。类型化故障异常是定义“预期”异常的一种方法——它只是在SOAP故障中传递的另一个数据协定,用于描述某些故障FaultException
- 创建包含结果代码、响应数据、失败消息等内容的响应数据协定,并将此数据协定用于成功和失败。我不喜欢这种方法,但在某些ESB中使用这种方法更容易,在这些ESB中,故障是以特殊的方式处理的
FaultException
时,您将捕获验证异常。