internal ExceptionSurrogate(Exception exception)
        {
            Contract.Assert(exception != null);

            Message    = exception.Message;
            StackTrace = exception.StackTrace;
            if (exception.InnerException != null)
            {
                InnerException = new ExceptionSurrogate(exception.InnerException);
            }
            ExceptionType = exception.GetType().FullName;
        }
        internal ExceptionSurrogate(Exception exception)
        {
            Contract.Assert(exception != null);

            Message = exception.Message;
            StackTrace = exception.StackTrace;
            if (exception.InnerException != null)
            {
                InnerException = new ExceptionSurrogate(exception.InnerException);
            }
            ExceptionType = exception.GetType().FullName;
        }