FeatureSelect.NUnit 1.0.6

dotnet add package FeatureSelect.NUnit --version 1.0.6                
NuGet\Install-Package FeatureSelect.NUnit -Version 1.0.6                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用了 NuGet 模块的 Install-Package 版本。
<PackageReference Include="FeatureSelect.NUnit" Version="1.0.6" />                
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件中以引用该包。
paket add FeatureSelect.NUnit --version 1.0.6                
#r "nuget: FeatureSelect.NUnit, 1.0.6"                
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。将其复制到交互式工具或脚本的源代码中以引用包。
// Install FeatureSelect.NUnit as a Cake Addin
#addin nuget:?package=FeatureSelect.NUnit&version=1.0.6

// Install FeatureSelect.NUnit as a Cake Tool
#tool nuget:?package=FeatureSelect.NUnit&version=1.0.6                

FeatureSelect

FeatureSelect 是一个灵活的功能开关库,集成了 ASP.NET Core。

安装

通过 NuGet 安装

Install-Package FeatureSelect

用法

创建一个功能源并使用它获取一个功能。一个 "功能" 包含两个函数,一个用于启用该功能时执行,另一个用于禁用该功能时执行。

var source = new ConfigurationFeatureSource(Configuration);

var feature = source.GetFeature("MyFeature");

var result = feature.Execute(() => "My feature is enabled", () => "My feature is disabled");

为了与 ASP.NET Core 集成,请在 Program.cs 中使用 AddFeatureSelect 扩展方法注册 FeatureSelect。

var builder = WebApplication.CreateBuilder(args);

var config = builder.Configuration;

builder.Services.AddControllers();
builder.Services.AddFeatureSelect(config.GetSection("Features"));

var app = builder.Build();

app.UseRouting();

app.MapControllers();

app.Run();

现在,您可以在控制器中使用 [IfEnabled][IfDisabled] 特性来切换任何控制器或路由的开启/关闭。

[IfEnabled("Customers")]
public class CustomerController
{
    [HttpGet("/customers")]
    [IfEnabled("GetCustomers")]
    public IActionResult Get()
    {
        ...
    }
}

您还可以注入 FeatureSource 实例。

public class MyController
{
    [HttpGet("/my-feature")]
    public string Get([FromServices] FeatureSource features)
    {
        return features
            .GetFeature("MyFeature")
            .Execute(() => "My feature is enabled", () => "My feature is disabled");
    }
}

为了配置启用哪些功能,只需在 appsettings.json 中简单地定义它们,或使用用户机密或环境变量。

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "Features": {
    "feature1": "enabled",
    "feature2": "diabled",
    "feature3": "enabled"
  }
}
产品 兼容以及额外的计算目标框架版本。
.NET
.NET Core
.NET Standard
.NET Framework net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
MonoAndroid monoandroid 已计算。
MonoMac monomac 已计算。
MonoTouch monotouch 已计算。
Tizen tizen40 已计算。 tizen60 已计算。
Xamarin.iOS xamarinios 已计算。
Xamarin.Mac xamarinmac 已计算。
Xamarin.TVOS xamarintvos 已计算。
Xamarin.WatchOS xamarinwatchos 已计算。
兼容的目标框架
包含的目标框架(在包中)
了解更多关于 目标框架.NET Standard 的信息。

NuGet 包

此包未被任何 NuGet 包使用。

GitHub 仓库

此包未被任何流行的 GitHub 仓库使用。

版本 下载 最后更新
1.0.6 2,461 9/9/2022
1.0.5 360 9/9/2022
1.0.4 376 9/9/2022