在 .NET Core 使用 Feature Flag (Feature Toggle) - 時間控制

承接上一篇,如果有一些情境是限時開放的功能,時間過了以後就要關閉,那就可以用到 TimeWindow appsettings.json "FeatureManagement": { "FeatureB": { "EnabledFor": [ { "Name": "Microsoft.TimeWindow", "Parameters": { "Start": "2020-11-09 04:58:00Z", "End": "2099-11-09 05:00:00Z" } } ] } } 基本的 Feature Toggle 使用 var isFeatureAEnabled = await _featureManager.IsEnabledAsync("FeatureA"); if(isFeatureAEnabled) { // 有打開,走新邏輯 } else { // 未打開,走舊邏輯 } API Route 多個使用方式,驗證不過會回傳404 [FeatureGate("FeatureA")] public async Task<ActionResult> Foo() { return Ok(result); } 也可指定任一或多個 Feature 是否有打開 [FeatureGate(requirementType: RequirementType.Any, "FeatureA", "FeatureB")] public async Task<ActionResult> Foo() { return Ok(result); } 也可以用 Enum 避免弱型別的typo [FeatureGate(MyFeatureFlags....

1 min · Kyle