From 0f3193b5c9ef9ba8fd865e11d94d90d8909e825e Mon Sep 17 00:00:00 2001 From: backtrack5r3 Date: Thu, 5 Feb 2026 16:17:46 +0100 Subject: [PATCH 1/2] fix(208): explicitly register interface for FeatureClient in DI Signed-off-by: backtrack5r3 --- internal/cmd/testdata/success_csharp.golden | 4 ++-- internal/generators/csharp/csharp.tmpl | 4 ++-- test/csharp-integration/OpenFeature.g.cs | 4 ++-- test/csharp-integration/expected/OpenFeature.cs | 4 ++-- test/csharp-integration/expected/OpenFeature.g.cs | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/internal/cmd/testdata/success_csharp.golden b/internal/cmd/testdata/success_csharp.golden index 05fa1d0..a77ce09 100644 --- a/internal/cmd/testdata/success_csharp.golden +++ b/internal/cmd/testdata/success_csharp.golden @@ -41,7 +41,7 @@ namespace TestNamespace { return services .AddSingleton(_ => Api.Instance) - .AddSingleton(provider => provider.GetRequiredService().GetClient()) + .AddSingleton(provider => provider.GetRequiredService().GetClient()) .AddSingleton(); } @@ -55,7 +55,7 @@ namespace TestNamespace { return services .AddSingleton(_ => Api.Instance) - .AddSingleton(provider => provider.GetRequiredService().GetClient(domain)) + .AddSingleton(provider => provider.GetRequiredService().GetClient(domain)) .AddSingleton(); } } diff --git a/internal/generators/csharp/csharp.tmpl b/internal/generators/csharp/csharp.tmpl index 414e434..f09bf64 100644 --- a/internal/generators/csharp/csharp.tmpl +++ b/internal/generators/csharp/csharp.tmpl @@ -35,7 +35,7 @@ namespace {{ if .Params.Custom.Namespace }}{{ .Params.Custom.Namespace }}{{ else { return services .AddSingleton(_ => Api.Instance) - .AddSingleton(provider => provider.GetRequiredService().GetClient()) + .AddSingleton(provider => provider.GetRequiredService().GetClient()) .AddSingleton(); } @@ -49,7 +49,7 @@ namespace {{ if .Params.Custom.Namespace }}{{ .Params.Custom.Namespace }}{{ else { return services .AddSingleton(_ => Api.Instance) - .AddSingleton(provider => provider.GetRequiredService().GetClient(domain)) + .AddSingleton(provider => provider.GetRequiredService().GetClient(domain)) .AddSingleton(); } } diff --git a/test/csharp-integration/OpenFeature.g.cs b/test/csharp-integration/OpenFeature.g.cs index 05fa1d0..a77ce09 100644 --- a/test/csharp-integration/OpenFeature.g.cs +++ b/test/csharp-integration/OpenFeature.g.cs @@ -41,7 +41,7 @@ public static IServiceCollection AddOpenFeature(this IServiceCollection services { return services .AddSingleton(_ => Api.Instance) - .AddSingleton(provider => provider.GetRequiredService().GetClient()) + .AddSingleton(provider => provider.GetRequiredService().GetClient()) .AddSingleton(); } @@ -55,7 +55,7 @@ public static IServiceCollection AddOpenFeature(this IServiceCollection services { return services .AddSingleton(_ => Api.Instance) - .AddSingleton(provider => provider.GetRequiredService().GetClient(domain)) + .AddSingleton(provider => provider.GetRequiredService().GetClient(domain)) .AddSingleton(); } } diff --git a/test/csharp-integration/expected/OpenFeature.cs b/test/csharp-integration/expected/OpenFeature.cs index cd0f584..c814fcf 100644 --- a/test/csharp-integration/expected/OpenFeature.cs +++ b/test/csharp-integration/expected/OpenFeature.cs @@ -25,7 +25,7 @@ public static IServiceCollection AddOpenFeature(this IServiceCollection services { return services .AddSingleton(_ => Api.Instance) - .AddSingleton(provider => provider.GetRequiredService().GetClient()) + .AddSingleton(provider => provider.GetRequiredService().GetClient()) .AddSingleton(); } @@ -39,7 +39,7 @@ public static IServiceCollection AddOpenFeature(this IServiceCollection services { return services .AddSingleton(_ => Api.Instance) - .AddSingleton(provider => provider.GetRequiredService().GetClient(domain)) + .AddSingleton(provider => provider.GetRequiredService().GetClient(domain)) .AddSingleton(); } } diff --git a/test/csharp-integration/expected/OpenFeature.g.cs b/test/csharp-integration/expected/OpenFeature.g.cs index a9ed769..835ebf9 100644 --- a/test/csharp-integration/expected/OpenFeature.g.cs +++ b/test/csharp-integration/expected/OpenFeature.g.cs @@ -24,7 +24,7 @@ public static IServiceCollection AddOpenFeature(this IServiceCollection services { return services .AddSingleton(_ => Api.Instance) - .AddSingleton(provider => provider.GetRequiredService().GetClient()) + .AddSingleton(provider => provider.GetRequiredService().GetClient()) .AddSingleton(); } @@ -38,7 +38,7 @@ public static IServiceCollection AddOpenFeature(this IServiceCollection services { return services .AddSingleton(_ => Api.Instance) - .AddSingleton(provider => provider.GetRequiredService().GetClient(domain)) + .AddSingleton(provider => provider.GetRequiredService().GetClient(domain)) .AddSingleton(); } } From af0907a76bd25f13fca75c8c3c6a8ddc7c0680dc Mon Sep 17 00:00:00 2001 From: backtrack5r3 Date: Thu, 5 Feb 2026 16:21:16 +0100 Subject: [PATCH 2/2] test(208): enforce the usage of extension method Signed-off-by: backtrack5r3 --- test/csharp-integration/Program.cs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/test/csharp-integration/Program.cs b/test/csharp-integration/Program.cs index 03bd66d..3c3230b 100644 --- a/test/csharp-integration/Program.cs +++ b/test/csharp-integration/Program.cs @@ -17,10 +17,9 @@ static void Main(string[] args) // Test DI initialization var services = new ServiceCollection(); - // Register OpenFeature services manually for the test - services.AddSingleton(_ => Api.Instance); - services.AddSingleton(_ => Api.Instance.GetClient()); - services.AddSingleton(); + + services.AddOpenFeature(); + var serviceProvider = services.BuildServiceProvider(); // Test client retrieval from DI