Feature Flags, Toggles & A/B Testing

Everything you need for turbocharging your modern product development

.NET Client SDK

These docs are for using our .NET SDK in a single-user, client side context. For server side and multi-user contexts, try our server .NET SDK

The client .NET SDK is written in C#, and is open source and hosted on github.

The Basics

Get started in a few quick steps.

  1. Create a free account on statsig.com
  2. Install the SDK
  3. Initialize the SDK
  4. Fetch Feature Gates or Dynamic Configs

Step 1 - Create a free account on www.statsig.com

You could skip this for now, but you will need an SDK Key and some Feature Gates or Dynamic Configs to use with the SDK in just a minute.

Step 2 - Install the SDK

The package is hosted on Nuget. You can either install it from your Visual Studio’s Nuget package manager, or through .NET CLI:

dotnet add package Statsig --version 0.1.2

Step 3 - Initialize the SDK

Initialize the SDK using a Client SDK Key from the statsig console (you may need to generate a new one if this is your first time using Statsig):

using Statsig;
using Statsig.Client;

var user = new StatsigUser { UserID = "12345", Email = "jkw@statsig.com" };
await StatsigClient.initialize("<STATSIG_SECRET>", user);

StatsigClient is a singleton class that you just need to call initialize() wherever you initialize your app once, and then you can use it anywhere else in your app synchronously.

Step 4 - Fetch Feature Gates, Dynamic Configs, and log custom events

Now that your SDK is initialized for your user, you can check feature gates, get configs and log events for the user. Let’s say you are running a promotion that offers all users with a @statsig.com email a discounted price on your monthly subscription serivce, you can apply the discounted price for your user dynamically like this:

private double _subPrice = 1.99;

// 1. check if the user pass the feature gate named "has_statsig_email" - you can configure the gate in Statsig console to only pass if user's email ends with "@statsig.com"
if (StatsigClient.CheckGate("has_statsig_email"))
  // 2. if they are eligible, then get the price from the dynamic config named "special_item_prices" using the key ("monthly_sub_price") and a default value (0.99)
  var priceConfigs = StatsigClient.GetConfig("special_item_prices");
  _subPrice = priceConfigs.Get<double>("montly_sub_price", 0.99);

// 3. you can also log the conversion event with StatsigClient if you are running an A/B test to improve the conversion, or just want to track it in general
StatsigClient.LogEvent("purchase_made", 1, new Dictionary<string, string>(){ { "price", _subPrice.ToString() } });

More Information

For more information, see our SDK documentation on github.