首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在LaunchDarkly核心api中实现.net特征管理

如何在LaunchDarkly核心api中实现.net特征管理
EN

Stack Overflow用户
提问于 2020-12-17 13:37:44
回答 1查看 1.6K关注 0票数 1

我想将LaunchDarkly特性管理添加到我的.net核心api.In中,这是一个实时项目,如何添加呢?

我有一个接口文件与所有的features.How将是这个接口参加LD调用?

我很困惑如何为配置创建一个通用文件,并调用不同的控制器!任何帮助都将不胜感激!

我在我的样本程序中所做的。

  1. I在LD网站中创建了一个标志,并将下面的代码添加到main

配置ldConfig = LaunchDarkly.Client.Configuration // TODO:在这里输入LaunchDarkly SDK键.Default("YOUR_SDK_KEY");LdClient client =新LdClient(ldConfig);User = User.Builder("bob@example.com") .FirstName("Bob") .LastName("Loblaw") .Custom("groups","beta_testers") .Build() .Build();// TODO:在此处输入功能标志键的键var value = client.BoolVariation("YOUR_FEATURE_FLAG_KEY",user,false);if (值){Console.WriteLine(“为用户显示功能”+ user.Key);}user.Key{Console.WriteLine(“未为用户显示功能”+ user.Key);}

但是现在我有了一个具有大量代码行的实时api项目,多个controllers.How可以使这个LD类泛化吗?请帮助me..thanks

EN

回答 1

Stack Overflow用户

发布于 2021-04-28 17:17:51

首先,在appsettings.json中声明密钥。然后创建一个接口类来声明所需的方法。

代码语言:javascript
复制
public interface IFeatureFlagsService
{
    T GetFeatureFlag<T>(string flagKey, string userKey);
}

现在实现这个接口

代码语言:javascript
复制
using LaunchDarkly.Client;

public class FeatureFlagsService : IFeatureFlagsService
{
private readonly LdClient _ldClient;

public FeatureFlagsService(IConfiguration configuration)
{
    _ldClient = new LdClient(configuration["LaunchDarkly:Key"]);
}

public T GetFeatureFlag<T>(string flagKey, string userKey = "anonymous")
{
    var user = User.WithKey(userKey);

    if (typeof(T).Equals(typeof(bool)))
        return (T)(object)_ldClient.BoolVariation(flagKey, user, default);
    else if (typeof(T).Equals(typeof(int)))
        return (T)(object)_ldClient.IntVariation(flagKey, user, default);
    else if (typeof(T).Equals(typeof(float)))
        return (T)(object)_ldClient.FloatVariation(flagKey, user, default);
    else if (typeof(T).Equals(typeof(string)))
        return (T)(object)_ldClient.StringVariation(flagKey, user, default);

    return default;
}
}

确保在startup.cs中注入配置

代码语言:javascript
复制
services.AddSingleton<IFeatureFlagsService>(sp => new FeatureFlagsService(configuration));

现在您可以将这个IFeatureFlagService插入到控制器中,并调用如下所示

代码语言:javascript
复制
_featureFlagService.GetFeatureFlag<bool>("isExternalUser");
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65341819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档