WCF服务中多个故障契约类型的优点

时间:2011-12-28 21:59:13

标签: wcf

有人可以帮助我在单个应用程序中使用多个Fault契约类型的优势,并将不同的组件公开为WCF服务。

对此的任何帮助都会受到高度关注。

由于

1 个答案:

答案 0 :(得分:7)

故障合同有助于定义特定服务所期望的错误类型。在客户端,这允许应用程序根据故障类型捕获和管理条件。

例如(取自here),您可以获得具有多种类型的错误合同的服务:

[ServiceContract]  
interface ICalculator  
{  
   [OperationContract]  
   [FaultContract(typeof(InvalidOperationException))]  
   [FaultContract(typeof(string))]  
   double Add(double number1,double number2);  

   [OperationContract]  
   [FaultContract(typeof(DivideByZeroException))]  
   double Divide(double number1,double number2);  
   //More methods  
} 

在客户端,你会有这个:

CalculatorClient proxy = new CalculatorClient( );  
try  
{  
   proxy.Divide(2,0);  
   proxy.Close( );  
}  

catch(FaultException<DivideByZeroException> exception)  
{...}  

catch(CommunicationException exception)  
{...}  

希望这有帮助。