From 63b590a9eac1d71dfbd195136924dce9aaf2d450 Mon Sep 17 00:00:00 2001 From: Chris Cameron Date: Tue, 20 Aug 2019 15:40:01 -0400 Subject: [PATCH] feat: ToStringJsonConverter rethrows the inner exception for TargetInvocationExceptions --- ICD.Common.Utils/Json/ToStringJsonConverter.cs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/ICD.Common.Utils/Json/ToStringJsonConverter.cs b/ICD.Common.Utils/Json/ToStringJsonConverter.cs index ee397fd..af6d176 100644 --- a/ICD.Common.Utils/Json/ToStringJsonConverter.cs +++ b/ICD.Common.Utils/Json/ToStringJsonConverter.cs @@ -43,12 +43,19 @@ namespace ICD.Common.Utils.Json public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { MethodInfo parse = GetParseMethod(objectType); - if (parse != null) - return parse.Invoke(null, new[] {reader.Value}); - - throw new ArgumentException( + if (parse == null) + throw new ArgumentException( string.Format("{0} does not have a 'static {0} Parse(string)' method.", objectType.Name), "objectType"); + + try + { + return parse.Invoke(null, new[] { reader.Value }); + } + catch (TargetInvocationException e) + { + throw e.InnerException; + } } #endregion