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; }