| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- //-----------------------------------------------------------------------------
- // Copyright (c) Microsoft Corporation. All rights reserved.
- //-----------------------------------------------------------------------------
- namespace System.ServiceModel
- {
- using System;
- using System.Globalization;
- using System.Text;
- using System.Runtime.Serialization;
- [DataContract]
- public class ExceptionDetail
- {
- string helpLink;
- ExceptionDetail innerException;
- string message;
- string stackTrace;
- string type;
- public ExceptionDetail(Exception exception)
- {
- if (exception == null)
- {
- throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("exception");
- }
- this.helpLink = exception.HelpLink;
- this.message = exception.Message;
- this.stackTrace = exception.StackTrace;
- this.type = exception.GetType().ToString();
- if (exception.InnerException != null)
- {
- this.innerException = new ExceptionDetail(exception.InnerException);
- }
- }
- [DataMember]
- public string HelpLink
- {
- get { return this.helpLink; }
- set { this.helpLink = value; }
- }
- [DataMember]
- public ExceptionDetail InnerException
- {
- get { return this.innerException; }
- set { this.innerException = value; }
- }
- [DataMember]
- public string Message
- {
- get { return this.message; }
- set { this.message = value; }
- }
- [DataMember]
- public string StackTrace
- {
- get { return this.stackTrace; }
- set { this.stackTrace = value; }
- }
- [DataMember]
- public string Type
- {
- get { return this.type; }
- set { this.type = value; }
- }
- public override string ToString()
- {
- return string.Format(CultureInfo.InvariantCulture, "{0}\n{1}", SR.GetString(SR.SFxExceptionDetailFormat), this.ToStringHelper(false));
- }
- string ToStringHelper(bool isInner)
- {
- StringBuilder sb = new StringBuilder();
- sb.AppendFormat("{0}: {1}", this.Type, this.Message);
- if (this.InnerException != null)
- {
- sb.AppendFormat(" ----> {0}", this.InnerException.ToStringHelper(true));
- }
- else
- {
- sb.Append("\n");
- }
- sb.Append(this.StackTrace);
- if (isInner)
- {
- sb.AppendFormat("\n {0}\n", SR.GetString(SR.SFxExceptionDetailEndOfInner));
- }
- return sb.ToString();
- }
- }
- }
|