diff --git a/Directory.Build.props b/Directory.Build.props
index 808abc1..d138994 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -21,7 +21,7 @@
- 1.0.0
+ 1.0.1
prerelease
diff --git a/src/AzureFunctions.DisabledWhen/IFunctionsWorkerApplicationBuilderExtensions.cs b/src/AzureFunctions.DisabledWhen/IFunctionsWorkerApplicationBuilderExtensions.cs
index af665bf..155b91b 100644
--- a/src/AzureFunctions.DisabledWhen/IFunctionsWorkerApplicationBuilderExtensions.cs
+++ b/src/AzureFunctions.DisabledWhen/IFunctionsWorkerApplicationBuilderExtensions.cs
@@ -9,6 +9,18 @@ public static class IFunctionsWorkerApplicationBuilderExtensions
{
public static void UseDisabledWhen(this IFunctionsWorkerApplicationBuilder builder)
{
+ // Validate that an underlying IFunctionMetadataProvider is already registered
+ // This is typically done by ConfigureFunctionsWebApplication() or ConfigureFunctionsWorkerDefaults()
+ var hasUnderlyingProvider = builder.Services.Any(descriptor =>
+ descriptor.ServiceType == typeof(IFunctionMetadataProvider));
+
+ if (!hasUnderlyingProvider)
+ {
+ throw new InvalidOperationException(
+ "UseDisabledWhen() must be called after ConfigureFunctionsWebApplication() or ConfigureFunctionsWorkerDefaults(). " +
+ "No underlying IFunctionMetadataProvider was found in the service collection.");
+ }
+
builder.Services.AddSingleton();
}
}
\ No newline at end of file
diff --git a/tests/AzureFunctions.DisabledWhen.Tests/AppBuilderStartupTests.cs b/tests/AzureFunctions.DisabledWhen.Tests/AppBuilderStartupTests.cs
index 7dc7864..248434d 100644
--- a/tests/AzureFunctions.DisabledWhen.Tests/AppBuilderStartupTests.cs
+++ b/tests/AzureFunctions.DisabledWhen.Tests/AppBuilderStartupTests.cs
@@ -89,4 +89,5 @@ await testHost.StartAsync(new Dictionary
await Assert.That(functionNames).Contains("AlwaysEnabled");
await Assert.That(functionNames).DoesNotContain("RequiresApiKey");
}
+
}