FeatureSelect 1.0.6

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

// Install FeatureSelect as a Cake Tool
#tool nuget:?package=FeatureSelect&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 集成,使用 AddFeatureSelect 扩展方法在 Program.cs 中注册 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 net5.0 已计算。 net5.0-windows 已计算。 net6.0 兼容。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。
.NET Core netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 兼容。
.NET Standard netstandard2.0 兼容。 netstandard2.1 兼容。
.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 包 (2)

显示取决于 FeatureSelect 的前 2 个 NuGet 包

下载
FeatureSelect.AspNetCore

FeatureSelect 的扩展,用于添加 ASP.NET Core 集成

FeatureSelect.NUnit

FeatureSelect 的扩展,用于与 NUnit 集成

GitHub 仓库

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

版本 下载 最后更新
1.0.6 3,107 9/9/2022
1.0.5 965 9/9/2022
1.0.4 842 9/9/2022
1.0.3 616 9/8/2022
1.0.2 640 9/8/2022
1.0.1 652 9/8/2022
1.0.0 382 9/8/2022
0.5.0 912 1/7/2019
0.0.4 1,597 9/16/2015
0.0.3 1,278 9/4/2015
0.0.2 1,392 9/3/2015
0.0.1 1,042 9/3/2015