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