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 に答える