From e2c51e1e75ce744213c4b27eed11cdd72c35ee20 Mon Sep 17 00:00:00 2001 From: Simon Cropp Date: Thu, 16 Apr 2026 11:51:16 +1000 Subject: [PATCH] Throw on null assembly in TryGetType for bad plugin assembly --- src/Verify.Tests/PluginConventionTests.cs | 4 ++++ src/Verify/VerifierSettings_PluginConvention.cs | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Verify.Tests/PluginConventionTests.cs b/src/Verify.Tests/PluginConventionTests.cs index 7cafa48031..bd6c564bab 100644 --- a/src/Verify.Tests/PluginConventionTests.cs +++ b/src/Verify.Tests/PluginConventionTests.cs @@ -22,6 +22,10 @@ public void TryGetType() public void GetTypeName(string assemblyName, string expectedTypeName) => Assert.Equal(expectedTypeName, VerifierSettings.GetTypeName(assemblyName)); + [Fact] + public void TryGetTypeNullAssembly() => + Assert.Throws(() => VerifierSettings.TryGetType("Verify.BadAssemblyName.dll", out _)); + [Fact] public void InvokeInitialize() { diff --git a/src/Verify/VerifierSettings_PluginConvention.cs b/src/Verify/VerifierSettings_PluginConvention.cs index 5cfeccb495..d65ee8d118 100644 --- a/src/Verify/VerifierSettings_PluginConvention.cs +++ b/src/Verify/VerifierSettings_PluginConvention.cs @@ -51,8 +51,13 @@ internal static bool TryGetType(string file, [NotNullWhen(true)] out Type? type) return false; } #pragma warning disable CS0618 - var assembly = Assembly.LoadWithPartialName(assemblyName)!; + var assembly = Assembly.LoadWithPartialName(assemblyName); #pragma warning restore CS0618 + if (assembly == null) + { + throw new($"Could not load assembly '{assemblyName}'."); + } + var typeName = GetTypeName(assemblyName); type = assembly.GetType(typeName); return type != null;