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

Bon*_*749 3 wcf

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

任何有关这方面的帮助都会受到高度关注.

谢谢

Gar*_*ger 7

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

例如(从这里获取),您可以获得具有多种类型的故障合同的服务:

[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  
} 
Run Code Online (Sandbox Code Playgroud)

在客户端,你会有这样的:

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

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

catch(CommunicationException exception)  
{...}  
Run Code Online (Sandbox Code Playgroud)

希望这会有所帮助.

  • 我以为这就是我所描述的.多个合同允许客户端根据故障类型确定不同的操作.它还可以提供有关故障的更多信息. (2认同)