私はWCFメソッドを持っています:
[WebInvoke(Method = "GET",
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "exception")]
public void GenerateException()
クライアント (SOAP と JSON) に基づいて別の障害を返したいと思っています。
だから私はコンテンツタイプをチェックし、それに応じて自分のタイプを選択します
String ct = WebOperationContext.Current.IncomingRequest.ContentType;
FaultException fe = new FaultException(errorMessage, new FaultCode(errorCode));
WebFaultException<ErrorData> errorDataWebFault = new WebFaultException<ErrorData> (errorData, System.Net.HttpStatusCode.InternalServerError);
if (ct.Contains("text/xml"))
throw fe;
else//Can throw any of the WebFaultExceptions here
throw errorDataWebFault;
確認しないと、SOAP コンシューマーは WebFaultExceptions のメッセージを見ることができず、JSON コンシューマーは FaultException のメッセージを見ることができません。
これを行うより良い方法はありますか?何か「組み込み」があるべきだと感じます。