Je vyžadována podpora jazyka JavaScript
Některé stránky na tomto webu vyžadují podporu jazyka JavaScript. Váš webový prohlížeč jazyk JavaScript nepodporuje nebo jazyk JavaScript není povolen.
Chcete-li zjistit, zda webový prohlížeč podporuje jazyk JavaScript nebo jazyk JavaScript chcete povolit, přečtěte si nápovědu k vašemu webovému prohlížeči.
ExceptionExtensions.cs
Download fileToto je zdrojový kód souboru ExceptionExtensions.cs
Class that contains Exception extension methods.
using System; namespace IMP.Shared { internal static class ExceptionExtensions { #region action methods public static Exception SetAsyncStackTrace(this Exception ex, string asyncStackTrace) { if (ex == null) { throw new ArgumentNullException("ex"); } ex.Data.Add("AsyncStackTrace", asyncStackTrace); return ex; } public static string FormatExceptionInfo(this Exception ex) { if (ex == null) { throw new ArgumentNullException("ex"); } var sb = new System.Text.StringBuilder(); sb.Append(ex.GetType().FullName); if (!string.IsNullOrEmpty(ex.Message)) { sb.Append(": "); sb.Append(ex.Message); } var detail = TryGetExceptionDetail(ex); if (detail != null) { sb.Append(Environment.NewLine); sb.Append("---> "); sb.Append(detail.FormatExceptionInfo()); sb.Append(Environment.NewLine); sb.Append(" --- End of remote service exception stack trace ---"); } if (ex.InnerException != null) { sb.Append(Environment.NewLine); sb.Append("---> "); sb.Append(ex.InnerException.FormatExceptionInfo()); sb.Append(Environment.NewLine); sb.Append(" --- End of inner exception stack trace ---"); } string stackTrace = (string)ex.Data["AsyncStackTrace"] ?? ex.StackTrace; if (stackTrace != null) { sb.Append(Environment.NewLine); sb.Append(stackTrace); } return sb.ToString(); } public static string FormatExceptionInfo(this System.ServiceModel.ExceptionDetail detail) { var sb = new System.Text.StringBuilder(); sb.Append(detail.Type); if (!string.IsNullOrEmpty(detail.Message)) { sb.Append(": "); sb.Append(detail.Message); } if (detail.InnerException != null) { sb.Append(Environment.NewLine); sb.Append("---> "); sb.Append(detail.InnerException.FormatExceptionInfo()); sb.Append(Environment.NewLine); sb.Append(" --- End of inner exception stack trace ---"); } if (detail.StackTrace != null) { sb.Append(Environment.NewLine); sb.Append(detail.StackTrace); } return sb.ToString(); } #endregion #region private member functions private static System.ServiceModel.ExceptionDetail TryGetExceptionDetail(Exception ex) { if (!(ex is System.ServiceModel.FaultException)) { return null; } Type exceptionType = ex.GetType(); while (exceptionType != null) { if (exceptionType.IsGenericType && exceptionType.GetGenericTypeDefinition() == typeof(System.ServiceModel.FaultException<>)) { var property = exceptionType.GetProperty("Detail"); return property.GetValue(ex, null) as System.ServiceModel.ExceptionDetail; } exceptionType = exceptionType.BaseType; } return null; } #endregion } }