将堆栈跟踪附加到异常?

时间:2017-04-24 09:28:25

标签: c#

众所周知,异常通常不可序列化,并且在对不同.NET异常进行序列化/反序列化后在各种序列化程序中捕获一些非常奇怪的错误后,我想出了简单的DTO for trasport level:

[DataContract]
public class Error
{
    [DataMember]
    public string Message {get;set;}
    [DataMember]
    public string StackTrace {get;set;}
    //all Exception fields here
}

我可以成功地将Exception转换为Error类,但如何做到相反?我的意思是,我希望在实际运输之后抛出它,使用有效的远程堆栈跟踪以及运输之前的所有内容...... 一种方法是使用反射,但是,呃,它很糟糕,看起来很不健康。

1 个答案:

答案 0 :(得分:2)

我还没有完全理解这样做的要求,但在传输级别的通信中总是提供错误消息/代码传递,例如WCF有fault-contract你可以检查。我在Serializable Exception找到了一个可能适合您需求的答案。它有三种实现方式和良好的代码。

相关问题