diff --git a/MicrosoftExtensions.sln b/MicrosoftExtensions.sln
index 93aa99b..cabf0a2 100644
--- a/MicrosoftExtensions.sln
+++ b/MicrosoftExtensions.sln
@@ -1,9 +1,12 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
-VisualStudioVersion = 15.0.26906.1
+VisualStudioVersion = 15.0.27130.2027
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{2D805782-756E-4C98-B22E-F502BEE95318}"
+ ProjectSection(SolutionItems) = preProject
+ src\Directory.Build.props = src\Directory.Build.props
+ EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{31A4DDB1-952E-4EED-96EF-29C669279A86}"
ProjectSection(SolutionItems) = preProject
diff --git a/MicrosoftExtensions.sln.DotSettings b/MicrosoftExtensions.sln.DotSettings
index 37f2aed..0dacdc4 100644
--- a/MicrosoftExtensions.sln.DotSettings
+++ b/MicrosoftExtensions.sln.DotSettings
@@ -45,8 +45,12 @@
ALWAYS_ADD
ALWAYS_ADD
1
+ NEVER
+ NEVER
False
+ NEVER
False
+ NEVER
True
False
True
@@ -531,9 +535,14 @@
<Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
<Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
<Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ True
True
+ True
+ True
+ True
True
True
+ True
True
True
<data><AttributeFilter ClassMask="App.Metrics.Core.Internal.AppMetricsExcludeFromCodeCoverage" IsEnabled="True" /><AttributeFilter ClassMask="App.Metrics.Core.Internal.AppMetricsExcludeFromCodeCoverageAttribute" IsEnabled="True" /></data>
diff --git a/build/dependencies.props b/build/dependencies.props
index 26474b6..5bc1b76 100644
--- a/build/dependencies.props
+++ b/build/dependencies.props
@@ -2,19 +2,20 @@
2.0.0-*
2.0.0-*
- 2.0.0-*
+ 2.0.1
+ 2.0.0
4.4.0-*
- 2.0.0-*
+ 2.0.4
4.2.6
4.4.0
- 4.7.49
+ 4.8.1
10.0.2
2.0.0-*
2.0.0-*
- 15.3.0-*
- 2.3.0-beta2-*
- 4.19.2
- 4.19.0
+ 15.5.0
+ 2.3.1
+ 5.0.0
+ 5.0.0
1.0.0
diff --git a/sandbox/HealthMicrosoftExtensionsSandbox/HealthMicrosoftExtensionsSandbox.csproj b/sandbox/HealthMicrosoftExtensionsSandbox/HealthMicrosoftExtensionsSandbox.csproj
index 01548f3..2f0e2f6 100644
--- a/sandbox/HealthMicrosoftExtensionsSandbox/HealthMicrosoftExtensionsSandbox.csproj
+++ b/sandbox/HealthMicrosoftExtensionsSandbox/HealthMicrosoftExtensionsSandbox.csproj
@@ -14,9 +14,9 @@
-
-
-
+
+
+
diff --git a/sandbox/MetricsMicrosoftExtensionsSandbox/MetricsMicrosoftExtensionsSandbox.csproj b/sandbox/MetricsMicrosoftExtensionsSandbox/MetricsMicrosoftExtensionsSandbox.csproj
index 7e0e89a..53091af 100644
--- a/sandbox/MetricsMicrosoftExtensionsSandbox/MetricsMicrosoftExtensionsSandbox.csproj
+++ b/sandbox/MetricsMicrosoftExtensionsSandbox/MetricsMicrosoftExtensionsSandbox.csproj
@@ -14,9 +14,9 @@
-
-
-
+
+
+
diff --git a/src/App.Metrics.Extensions.Configuration/App.Metrics.Extensions.Configuration.csproj b/src/App.Metrics.Extensions.Configuration/App.Metrics.Extensions.Configuration.csproj
index 4b28892..753e7af 100644
--- a/src/App.Metrics.Extensions.Configuration/App.Metrics.Extensions.Configuration.csproj
+++ b/src/App.Metrics.Extensions.Configuration/App.Metrics.Extensions.Configuration.csproj
@@ -11,7 +11,7 @@
-
+
diff --git a/src/App.Metrics.Extensions.DependencyInjection/App.Metrics.Extensions.DependencyInjection.csproj b/src/App.Metrics.Extensions.DependencyInjection/App.Metrics.Extensions.DependencyInjection.csproj
index a438c98..e89765b 100644
--- a/src/App.Metrics.Extensions.DependencyInjection/App.Metrics.Extensions.DependencyInjection.csproj
+++ b/src/App.Metrics.Extensions.DependencyInjection/App.Metrics.Extensions.DependencyInjection.csproj
@@ -10,7 +10,7 @@
-
+
diff --git a/src/App.Metrics.Health.Extensions.Configuration/App.Metrics.Health.Extensions.Configuration.csproj b/src/App.Metrics.Health.Extensions.Configuration/App.Metrics.Health.Extensions.Configuration.csproj
index bcf9dfb..983976c 100644
--- a/src/App.Metrics.Health.Extensions.Configuration/App.Metrics.Health.Extensions.Configuration.csproj
+++ b/src/App.Metrics.Health.Extensions.Configuration/App.Metrics.Health.Extensions.Configuration.csproj
@@ -11,7 +11,7 @@
-
+
diff --git a/src/App.Metrics.Health.Extensions.DependencyInjection/App.Metrics.Health.Extensions.DependencyInjection.csproj b/src/App.Metrics.Health.Extensions.DependencyInjection/App.Metrics.Health.Extensions.DependencyInjection.csproj
index d3535b7..ceabd99 100644
--- a/src/App.Metrics.Health.Extensions.DependencyInjection/App.Metrics.Health.Extensions.DependencyInjection.csproj
+++ b/src/App.Metrics.Health.Extensions.DependencyInjection/App.Metrics.Health.Extensions.DependencyInjection.csproj
@@ -11,7 +11,7 @@
-
+
diff --git a/src/App.Metrics.Health.Extensions.DependencyInjection/Internal/DefaultHealthCheckTypeProvider.cs b/src/App.Metrics.Health.Extensions.DependencyInjection/Internal/DefaultHealthCheckTypeProvider.cs
index eebc032..5012101 100644
--- a/src/App.Metrics.Health.Extensions.DependencyInjection/Internal/DefaultHealthCheckTypeProvider.cs
+++ b/src/App.Metrics.Health.Extensions.DependencyInjection/Internal/DefaultHealthCheckTypeProvider.cs
@@ -70,8 +70,7 @@ public IEnumerable HealthCheckTypes
return false;
}
- if (!typeInfo.Name.EndsWith(HealthCheckTypeName, StringComparison.OrdinalIgnoreCase) &&
- !DerivesFromHealthCheck(typeInfo, candidateAssemblies))
+ if (!DerivesFromHealthCheck(typeInfo, candidateAssemblies))
{
return false;
}
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index ad660fa..1a172c2 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/test/Health.Extensions.Configuration.Facts/Health.Extensions.Configuration.Facts.csproj b/test/Health.Extensions.Configuration.Facts/Health.Extensions.Configuration.Facts.csproj
index f3a8dd8..00b94c0 100644
--- a/test/Health.Extensions.Configuration.Facts/Health.Extensions.Configuration.Facts.csproj
+++ b/test/Health.Extensions.Configuration.Facts/Health.Extensions.Configuration.Facts.csproj
@@ -23,7 +23,7 @@
-
+
diff --git a/test/Health.Extensions.DependencyInjection.Facts/ServiceCollectionHealthBuilderExtensionsTests.cs b/test/Health.Extensions.DependencyInjection.Facts/ServiceCollectionHealthBuilderExtensionsTests.cs
index 811f78a..22f4951 100644
--- a/test/Health.Extensions.DependencyInjection.Facts/ServiceCollectionHealthBuilderExtensionsTests.cs
+++ b/test/Health.Extensions.DependencyInjection.Facts/ServiceCollectionHealthBuilderExtensionsTests.cs
@@ -80,6 +80,24 @@ public void Should_scan_assembly_and_add_health_checks_and_ignore_obsolete_check
health.Checks.Skip(1).First().Name.Should().Be("Referenced Health Check");
}
+ [Fact]
+ public void Should_only_register_class_deriving_health_check()
+ {
+ // Arrange
+ var services = new ServiceCollection();
+ services.AddSingleton();
+
+ // Act
+ var unused = new HealthBuilder()
+ .HealthChecks.RegisterFromAssembly(services, _fixture.DependencyContext)
+ .BuildAndAddTo(services);
+ var provider = services.BuildServiceProvider();
+ var health = provider.GetRequiredService();
+
+ // Assert
+ health.Checks.FirstOrDefault(h => h.Name == nameof(DontRegisterHealthCheck)).Should().BeNull();
+ }
+
[Fact]
public void Should_append_resolved_health_checks_to_those_explicitly_registered()
{
diff --git a/test/Health.Extensions.DependencyInjection.Facts/TestHelpers/DontRegisterHealthCheck.cs b/test/Health.Extensions.DependencyInjection.Facts/TestHelpers/DontRegisterHealthCheck.cs
new file mode 100644
index 0000000..d8f1447
--- /dev/null
+++ b/test/Health.Extensions.DependencyInjection.Facts/TestHelpers/DontRegisterHealthCheck.cs
@@ -0,0 +1,29 @@
+//
+// Copyright (c) Allan Hardy. All rights reserved.
+//
+
+using System;
+using System.Threading;
+using System.Threading.Tasks;
+using App.Metrics.Health;
+
+namespace Health.Extensions.DependencyInjection.Facts.TestHelpers
+{
+ public class DontRegisterHealthCheck
+ {
+ public ValueTask CheckAsync(CancellationToken cancellationToken = default)
+ {
+ if (DateTime.UtcNow.Second <= 20)
+ {
+ return new ValueTask(HealthCheckResult.Degraded());
+ }
+
+ if (DateTime.UtcNow.Second >= 40)
+ {
+ return new ValueTask(HealthCheckResult.Unhealthy());
+ }
+
+ return new ValueTask(HealthCheckResult.Healthy());
+ }
+ }
+}
diff --git a/test/Metrics.Extensions.Configuration.Facts/Metrics.Extensions.Configuration.Facts.csproj b/test/Metrics.Extensions.Configuration.Facts/Metrics.Extensions.Configuration.Facts.csproj
index 8a38efd..fc29308 100644
--- a/test/Metrics.Extensions.Configuration.Facts/Metrics.Extensions.Configuration.Facts.csproj
+++ b/test/Metrics.Extensions.Configuration.Facts/Metrics.Extensions.Configuration.Facts.csproj
@@ -24,7 +24,7 @@
-
+