通常自己做一套Framework的时候,都会自己弄套 Exception 类。

例如:public class MyFrameworkException : Exception

不过,这个类最好是[Serializable],并且提供满足ISerializable协议的构造方法:

[Serializable] public class MyFrameworkException : Exception
{
    public MyFrameworkException(string msg):base(msg){}
    public MyFrameworkException(SerializationInfo info,StreamingContext context):base(info,context){}
}

当然,如果有成员数据,最好

 public override void GetObjectData(SerializationInfo info, StreamingContext context)
{
    base.GetObjectData (info, context);
    //添加自己的数据。。
}