From e33f315f33b5fe88ed5c9197e2f41d4c8d17e9c3 Mon Sep 17 00:00:00 2001 From: Zhiyuan Liang Date: Mon, 20 Oct 2025 16:16:15 +0800 Subject: [PATCH] expose time provider for TimeWindowFilter --- .../FeatureFilters/TimeWindowFilter.cs | 4 ++-- .../ServiceCollectionExtensions.cs | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Microsoft.FeatureManagement/FeatureFilters/TimeWindowFilter.cs b/src/Microsoft.FeatureManagement/FeatureFilters/TimeWindowFilter.cs index 62b5f4a5..389d129f 100644 --- a/src/Microsoft.FeatureManagement/FeatureFilters/TimeWindowFilter.cs +++ b/src/Microsoft.FeatureManagement/FeatureFilters/TimeWindowFilter.cs @@ -37,9 +37,9 @@ public TimeWindowFilter(ILoggerFactory loggerFactory = null) public IMemoryCache Cache { get; set; } /// - /// This property allows the time window filter in our test suite to use simulated time. + /// This property allows the time window filter to use custom . /// - internal TimeProvider SystemClock { get; set; } + public TimeProvider SystemClock { get; set; } /// /// Binds configuration representing filter parameters to . diff --git a/src/Microsoft.FeatureManagement/ServiceCollectionExtensions.cs b/src/Microsoft.FeatureManagement/ServiceCollectionExtensions.cs index 806c66fa..db43e8c6 100644 --- a/src/Microsoft.FeatureManagement/ServiceCollectionExtensions.cs +++ b/src/Microsoft.FeatureManagement/ServiceCollectionExtensions.cs @@ -175,7 +175,8 @@ private static IFeatureManagementBuilder GetFeatureManagementBuilder(IServiceCol builder.AddFeatureFilter(sp => new TimeWindowFilter() { - Cache = sp.GetRequiredService() + Cache = sp.GetRequiredService(), + SystemClock = sp.GetService() ?? TimeProvider.System, }); builder.AddFeatureFilter();