0

FeatureFlagService クラスを使用し、以下のような依存性注入を使用して、LaucnhDarkly を .NET 5 コードに統合しました。

services.AddSingleton<IFeatureFlagsService>(sp => new FeatureFlagsService(configuration));

そして、FeatureFlagsService.cs では、

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 を注入し、以下のように使用しました

_featureFlagService.GetFeatureFlag<bool>("externalUsersAllowed");

ここで、この featureflagservice.cs を取り出して、LaunchDarkly を既存の IConfiguration に追加し、次のように使用したいと思います

_configuation.GetValue<bool>("externalUsersAllowed")

どうすればこれを達成できますか?どうぞよろしくお願いいたします。

4

1 に答える 1