diff --git a/snippets/server-core/dotnet/initialize.mdx b/snippets/server-core/dotnet/initialize.mdx index bb1f2d3a8..7c68e185a 100644 --- a/snippets/server-core/dotnet/initialize.mdx +++ b/snippets/server-core/dotnet/initialize.mdx @@ -25,3 +25,48 @@ await sharedStatsig.Initialize(); var statsig = Statsig.Shared(); ``` + +### Dependency injection (v0.10.2+) + +You can register Statsig with `IServiceCollection` for dependency injection: + +```csharp +using Statsig; + +var builder = WebApplication.CreateBuilder(args); + +// Register Statsig as a singleton service +builder.Services.AddSingleton(sp => +{ + var options = new StatsigOptionsBuilder() + .SetSpecsSyncIntervalMs(10000) + .Build(); + + var statsig = new Statsig.Statsig("server-secret-key", options); + statsig.Initialize().Wait(); + return statsig; +}); + +var app = builder.Build(); +``` + +Then inject Statsig into your controllers or services: + +```csharp +public class MyController : ControllerBase +{ + private readonly Statsig.Statsig _statsig; + + public MyController(Statsig.Statsig statsig) + { + _statsig = statsig; + } + + public IActionResult Index() + { + var user = new StatsigUser { UserID = "user-123" }; + var gate = _statsig.CheckGate(user, "my_feature_gate"); + // ... + } +} +```