From 262e79d6814dfd6fd6da3731789292887af3c111 Mon Sep 17 00:00:00 2001 From: Mike-E Date: Wed, 20 Oct 2021 17:50:09 -0400 Subject: [PATCH 1/3] Addressed fusion.dll dependency --- .../ReflectionModel/AssemblyLoader.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ExtendedXmlSerializer/ReflectionModel/AssemblyLoader.cs b/src/ExtendedXmlSerializer/ReflectionModel/AssemblyLoader.cs index 3e572e494..f1bf37c2c 100644 --- a/src/ExtendedXmlSerializer/ReflectionModel/AssemblyLoader.cs +++ b/src/ExtendedXmlSerializer/ReflectionModel/AssemblyLoader.cs @@ -38,14 +38,15 @@ public Assembly Get(string parameter) for (var i = 0; i < length; i++) { var assembly = _loaded[i]; - if (assembly.GetName() - .Name == parameter) + if (assembly.GetName().Name == parameter) { return assembly; } } - throw; +#pragma warning disable CS0618 + return Assembly.LoadWithPartialName(parameter); +#pragma warning restore CS0618 } } } From a741e0f0381855af866cce1d5288e350af5a6a2a Mon Sep 17 00:00:00 2001 From: Mike-E Date: Wed, 20 Oct 2021 18:24:25 -0400 Subject: [PATCH 2/3] Throw error with name of assembly that is being loaded --- src/ExtendedXmlSerializer/ReflectionModel/AssemblyLoader.cs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/ExtendedXmlSerializer/ReflectionModel/AssemblyLoader.cs b/src/ExtendedXmlSerializer/ReflectionModel/AssemblyLoader.cs index f1bf37c2c..56e5dbc66 100644 --- a/src/ExtendedXmlSerializer/ReflectionModel/AssemblyLoader.cs +++ b/src/ExtendedXmlSerializer/ReflectionModel/AssemblyLoader.cs @@ -32,7 +32,7 @@ public Assembly Get(string parameter) { return Assembly.LoadFile(_path(parameter)); } - catch + catch (Exception error) { var length = _loaded.Length; for (var i = 0; i < length; i++) @@ -44,9 +44,7 @@ public Assembly Get(string parameter) } } -#pragma warning disable CS0618 - return Assembly.LoadWithPartialName(parameter); -#pragma warning restore CS0618 + throw new InvalidOperationException($"Could not load assembly '{parameter}'.", error); } } } From 535520094c73e97e55f308249bba057926321654 Mon Sep 17 00:00:00 2001 From: Mike-E Date: Thu, 21 Oct 2021 06:21:57 -0400 Subject: [PATCH 3/3] Improved message/added test --- .../ReflectionModel/AssemblyLoader.cs | 2 +- .../Issue558Tests.cs | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 test/ExtendedXmlSerializer.Tests.ReportedIssues/Issue558Tests.cs diff --git a/src/ExtendedXmlSerializer/ReflectionModel/AssemblyLoader.cs b/src/ExtendedXmlSerializer/ReflectionModel/AssemblyLoader.cs index 56e5dbc66..eb784c833 100644 --- a/src/ExtendedXmlSerializer/ReflectionModel/AssemblyLoader.cs +++ b/src/ExtendedXmlSerializer/ReflectionModel/AssemblyLoader.cs @@ -44,7 +44,7 @@ public Assembly Get(string parameter) } } - throw new InvalidOperationException($"Could not load assembly '{parameter}'.", error); + throw new InvalidOperationException($"Could not load assembly '{parameter}'. Are you sure it exists?", error); } } } diff --git a/test/ExtendedXmlSerializer.Tests.ReportedIssues/Issue558Tests.cs b/test/ExtendedXmlSerializer.Tests.ReportedIssues/Issue558Tests.cs new file mode 100644 index 000000000..e76240627 --- /dev/null +++ b/test/ExtendedXmlSerializer.Tests.ReportedIssues/Issue558Tests.cs @@ -0,0 +1,27 @@ +using ExtendedXmlSerializer.Configuration; +using ExtendedXmlSerializer.Tests.ReportedIssues.Support; +using FluentAssertions; +using System; +using Xunit; + +namespace ExtendedXmlSerializer.Tests.ReportedIssues +{ + public sealed class Issue558Tests + { + [Fact] + public void Verify() + { + var subject = new ConfigurationContainer().Create().ForTesting(); + + const string document = + @""; + + subject.Invoking(x => x.Deserialize(document)) + .Should() + .ThrowExactly() + .WithMessage("Could not load assembly 'ExtendedXmlSerializer.Tests.ReportedIssues.DoesNotExist'. Are you sure it exists?"); + } + + sealed class Subject {} + } +} \ No newline at end of file