Skip to main content
Version: Next

.Net SDK usage

NuGet Version NuGet Downloads

Install dependencies

The first things we will do is install the Open Feature SDK and the GO Feature Flag provider.

dotnet add package OpenFeature.Contrib.GOFeatureFlag

Initialize your Open Feature client

To evaluate the flags you need to have an Open Feature configured in you app. This code block shows you how you can create a client that you can use in your application.

using OpenFeature;
using OpenFeature.Contrib.GOFeatureFlag;

// ...

var goFeatureFlagProvider = new GoFeatureFlagProvider(new GoFeatureFlagProviderOptions
{
Endpoint = "http://localhost:1031/",
Timeout = new TimeSpan(1000 * TimeSpan.TicksPerMillisecond)
});
Api.Instance.SetProvider(goFeatureFlagProvider);
var client = Api.Instance.GetClient("my-app");

Evaluate your flag

This code block explain how you can create an EvaluationContext and use it to evaluate your flag.

note

In this example we are evaluating a boolean flag, but other types are also available.

Refer to the Open Feature documentation to know more about it.

// Context of your flag evaluation.
// With GO Feature Flag you MUST have a targetingKey that is a unique identifier of the user.
var userContext = EvaluationContext.Builder()
.Set("targetingKey", "1d1b9238-2591-4a47-94cf-d2bc080892f1") // user unique identifier (mandatory)
.Set("firstname", "john")
.Set("lastname", "doe")
.Set("email", "john.doe@gofeatureflag.org")
.Set("admin", true) // this field is used in the targeting rule of the flag "flag-only-for-admin"
.Set("anonymous", false)
.Build();

var adminFlag = await client.GetBooleanValue("flag-only-for-admin", false, userContext);
if (adminFlag) {
// flag "flag-only-for-admin" is true for the user
} else {
// flag "flag-only-for-admin" is false for the user
}

Contribute to the provider

You can find the source of the provider in the open-feature/dotnet-sdk-contrib repository.

Get the latest GO Feature Flag updates