自定义FaultContract作为ExceptionDetail返回

时间:2011-09-07 14:34:15

标签: .net wcf

我正在尝试使用Tcp绑定将自定义 FaultContract 从WCF服务抛出到ASP.NET应用程序。

我已经定义了错误合同 -

[DataContract]
public class CustomFault
{
    [DataMember]
    public string SomeData { get; set; }

    public CustomFault(string someData)
    {
        SomeData = someData;
    }
}

我已在服务操作中指定了错误合同:

[OperationContract]
[FaultContract(typeof(CustomFault))]
void AddProductToBasket(Guid basketId, int productId, decimal quantity, int uomId);

我扔它像:

throw new FaultException<CustomFault>(new CustomFault("LowStock"));

试图像这样抓住它:

try
{
    // Do service operation.
}
catch (FaultException<CustomFault> fault)
{
    // Successfully caught typed FaultException<CustomFault>
    throw;
}
catch (Exception ex)
{
    // Failed, caught FaultException<ExceptionDetail>
    throw;
}

但是捕获总是捕获FaultException<ExceptionDetail>类型的东西,我相信当你指定&lt; serviceDebug includeExceptionDetailInFaults =“true”/&gt; 时会发生这种情况,我已经为其他例外做了,但是为操作指定了FaultContract,它应该使用自定义FaultContract而不是......

有人有任何想法吗?

0 个答案:

没有答案