我已经使用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")我如何才能做到这一点?您的帮助将不胜感激。
发布于 2021-11-21 16:56:31
您需要通过实现IConfigurationSource来实现自定义配置提供程序,以便能够通过configuration对象、IOptions等访问它们
本文提供了如何做到这一点的示例:https://docs.microsoft.com/en-us/dotnet/core/extensions/custom-configuration-provider
https://stackoverflow.com/questions/67290997
复制相似问题