From ef39f886b6f34d8051db1de49686ad662d0212d2 Mon Sep 17 00:00:00 2001 From: William D Cossey Date: Tue, 20 Apr 2021 12:48:20 +0100 Subject: [PATCH] Only include `Errors` in exception message. --- RazorEngineCore/RazorEngine.cs | 6 ++---- RazorEngineCore/RazorEngineCompilationException.cs | 10 +++++----- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/RazorEngineCore/RazorEngine.cs b/RazorEngineCore/RazorEngine.cs index 0bdcf3d..6d83cc6 100644 --- a/RazorEngineCore/RazorEngine.cs +++ b/RazorEngineCore/RazorEngine.cs @@ -108,11 +108,9 @@ private MemoryStream CreateAndCompileToStream(string templateSource, RazorEngine if (!emitResult.Success) { - List errors = emitResult.Diagnostics.ToList(); - - RazorEngineCompilationException exception = new RazorEngineCompilationException($"Unable to compile template: \n{string.Join("\n", errors)}") + RazorEngineCompilationException exception = new RazorEngineCompilationException() { - Errors = errors, + Errors = emitResult.Diagnostics.ToList(), GeneratedCode = razorCSharpDocument.GeneratedCode }; diff --git a/RazorEngineCore/RazorEngineCompilationException.cs b/RazorEngineCore/RazorEngineCompilationException.cs index 4254f03..b53f9be 100644 --- a/RazorEngineCore/RazorEngineCompilationException.cs +++ b/RazorEngineCore/RazorEngineCompilationException.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Runtime.Serialization; using Microsoft.CodeAnalysis; @@ -15,15 +16,14 @@ protected RazorEngineCompilationException(SerializationInfo info, StreamingConte { } - public RazorEngineCompilationException(string message) : base(message) - { - } - - public RazorEngineCompilationException(string message, Exception innerException) : base(message, innerException) + public RazorEngineCompilationException(Exception innerException) : base(null, innerException) { } public List Errors { get; set; } + public string GeneratedCode { get; set; } + + public override string Message => $"Unable to compile template: {string.Join("\n", Errors.Where(w => w.IsWarningAsError || w.Severity == DiagnosticSeverity.Error))}"; } } \ No newline at end of file