private Exception BuildFailureException(Type type, string referenceName, object context) { string message; if (string.IsNullOrWhiteSpace(referenceName) == false) { if (context != null) { message = string.Format( CultureInfo.CurrentCulture, Resources.NoMatchingCreatorOrGeneratorFoundWithNameAndContext, type.FullName, referenceName, context.GetType().FullName); } else { message = string.Format( CultureInfo.CurrentCulture, Resources.NoMatchingCreatorOrGeneratorFoundWithName, type.FullName, referenceName); } } else { message = string.Format( CultureInfo.CurrentCulture, Resources.NoMatchingCreatorOrGeneratorFound, type.FullName); } var ex = new NotSupportedException(message); Log.BuildFailure(ex); const string MessageFormat = "Failed to create instance of type {0}, {1}: {2}{3}{3}At the time of the failure, the build log was:{3}{3}{4}"; var buildLog = Log.Output; var failureMessage = string.Format( CultureInfo.CurrentCulture, MessageFormat, type.FullName, ex.GetType().Name, ex.Message, Environment.NewLine, buildLog); return new BuildException(failureMessage, type, referenceName, context, buildLog, ex); }
//--------------------------------------------------------------------------- // Wrapper for TextPatternRange.RemoveFromSelection Method //--------------------------------------------------------------------------- internal void Range_RemoveFromSelection(TextPatternRange callingRange, Type expectedException, CheckType checkType) { string call = "TextPatternRange.RemoveFromSelection()"; Comment("---Calling " + call); if (callingRange == null) throw new ArgumentNullException(call + " requires non-NULL TextPatterncallingRange"); try { callingRange.RemoveFromSelection(); } catch (Exception actualException) { if (Library.IsCriticalException(actualException)) throw; // Bug 1746355: Throw "NotSupported" from TextPattern methods that...um...aren't supported if ((actualException is NotSupportedException) && (_frameworkId == "wpf")) { NotSupportedException nse = new NotSupportedException(); TestException(nse.GetType(), actualException, call, checkType); } else TestException(expectedException, actualException, call, checkType); return; } TestNoExceptionQuiet(expectedException, call, checkType); }