我知道 wcf 方法会引发错误异常,并且客户端应用程序会捕获该错误异常。但是有什么方法可以知道该 wcf 方法是否在客户端引发错误异常?
问问题
74 次
1 回答
0
当您创建 WCF 服务时,您可以使用以下[FaultContract]
属性装饰您的操作合同:
[ServiceContract]
public interface IService1
{
[OperationContract]
[FaultContract(typeof(MyFaultContract))]
void DoWork();
}
MyFaultContract
这会在服务的元数据 (WSDL) 中发出关于此的信息。然后,当您创建客户端代理(使用 VS 中的添加服务引用或直接通过svcutil.exe
)时,客户端知道此故障契约,您可以捕获此类异常。
所以这里的想法是看你的操作契约是否被[FaultContract]
属性修饰,以了解这个操作可能抛出哪种类型的错误契约。如果它没有定义任何自定义的 FaultContract 属性,则意味着在客户端上您只能捕获非通用版本的 FaultException。
于 2013-10-20T12:06:06.703 回答