首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LaunchDarkly -如何添加到IConfiguration - .NET 5.0

LaunchDarkly -如何添加到IConfiguration - .NET 5.0
EN

Stack Overflow用户
提问于 2021-04-28 05:36:58
回答 1查看 79关注 0票数 0

我已经使用FeatureFlagService类和依赖注入将LaucnhDarkly集成到我的.NET 5代码中,如下所示。

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

而在FeatureFlagsService.cs中,

代码语言:javascript
复制
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;
    }
}

在任何控制器中,我都是通过构造函数注入IFeatureFlagsService的,用法如下

代码语言:javascript
复制
_featureFlagService.GetFeatureFlag<bool>("externalUsersAllowed");

现在,我想取出这个featureflagservice.cs并将该LaunchDarkly添加到现有的IConfiguration中,并使用如下所示

代码语言:javascript
复制
_configuation.GetValue<bool>("externalUsersAllowed")

我如何才能做到这一点?您的帮助将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2021-11-21 16:56:31

您需要通过实现IConfigurationSource来实现自定义配置提供程序,以便能够通过configuration对象、IOptions等访问它们

本文提供了如何做到这一点的示例:https://docs.microsoft.com/en-us/dotnet/core/extensions/custom-configuration-provider

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67290997

复制
相关文章

相似问题

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