C# WPF客户端无法从WCF捕获自定义异常

C# WPF客户端无法从WCF捕获自定义异常,c#,wpf,wcf,C#,Wpf,Wcf,我有一个自定义异常,当客户机是控制台应用程序或表单应用程序时,这可以正常工作,但如果客户机是WPF则不工作。听着,但我还是没有找到答案,知道吗 我的基本自定义错误代码: [DataContract] public class BookingException { [DataMember] public string Messsage { get; set; } [DataMember] public string Description { get; set

我有一个自定义异常,当客户机是控制台应用程序或表单应用程序时,这可以正常工作,但如果客户机是
WPF
则不工作。听着,但我还是没有找到答案,知道吗

我的基本自定义错误代码:

[DataContract]   
public class BookingException
{
    [DataMember]
    public string Messsage { get; set; }
    [DataMember]
    public string Description { get; set; }
}
服务接口代码:

[OperationContract]
[FaultContract(typeof(BookingException))]  
void InsertBooking(Booking booking);
服务代码:

public void InsertBooking(Booking booking)
{
    throw new FaultException<BookingException>(new BookingException());  
}
public void InsertBooking(预订预订)
{
抛出新的FaultException(newBookingException());
}
客户端代码:

 catch (FaultException<BookingException> ex)
 {
       //TODO
 }
 catch (Exception ex)
 {
       //TODO
 }
catch(FaultException-ex)
{
//待办事项
}
捕获(例外情况除外)
{
//待办事项
}

当客户机是控制台应用程序或表单应用程序时,这很好,但如果我将此客户机代码放入WPF应用程序中,则捕获的总是异常,而不是自定义异常。

我用注释帮助解决了我的问题。我有两个代理,一个在我的控制台应用程序中,另一个在我的WPF应用程序中,两个代理使用相同的服务引用,但两个代理引用服务的方式不同,这就是问题所在。
WPF没有任何自定义错误问题

感谢那些帮助我发表评论的人。

Exception ex
块中设置断点,查看异常类型。它几乎可以肯定是您的自定义异常,但位于不同的命名空间中。这与您有一个WPF项目这一事实无关。这与您有一个不同的项目、项目设置不同或“添加服务引用”的方式不同有关。例如,WPF项目是一个新项目吗?那么,您可能没有添加对其他项目中添加的共享程序集的引用。@johnsaundersthaks供您评论。我创建了一个新的WPF项目,错误是相同的,但是如果我创建了一个控制台应用程序,它就可以正常工作。项目的名称空间在两者中是相同的,但仅在控制台应用程序中有效。我没有发现差异…@ernodeweard是相同的线程检查两个项目中使用的.NET版本。检查两个项目之间的部件和项目引用列表。如果情况更糟,请将Console项目拥有但WPF项目没有的任何程序集添加到WPF项目中(即使您认为WPF项目不需要这些程序集)。还可以创建一个新的控制台应用程序,并为其提供与WPF项目相同的程序集。确保在两个项目中使用完全相同的“添加服务引用”命令。@JohnSaunders在询问之前,我做了以下测试。反正我会把它们还给你的。谢谢你的建议