有人可以帮助我在单个应用程序中使用多个Fault契约类型的优势,并将不同的组件公开为WCF服务。
对此的任何帮助都会受到高度关注。
由于
答案 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)
{...}
希望这有帮助。