一尘不染

如何在C#中序列化Exception对象?

c#

我正在尝试在C#中序列化Exception对象。但是,由于Exception类未标记为,因此似乎是不可能的[Serializable]。有办法解决这个问题吗?

如果在应用程序执行期间出了点问题,我想知道发生的异常。

我的第一反应是将其序列化。


阅读 547

收藏
2020-05-19

共1个答案

一尘不染

我之前所做的是创建一个自定义的Error类。它封装了有关Exception的所有相关信息,并且可以XML序列化。

[Serializable]
public class Error
{
    public DateTime TimeStamp { get; set; }
    public string Message { get; set; }
    public string StackTrace { get; set; }

    public Error()
    {
        this.TimeStamp = DateTime.Now;
    }

    public Error(string Message) : this()
    {
        this.Message = Message;
    }

    public Error(System.Exception ex) : this(ex.Message)
    {
        this.StackTrace = ex.StackTrace;
    }

    public override string ToString()
    {
        return this.Message + this.StackTrace;
    }
}
2020-05-19