From aefa676d62a8285d9aae520b2d2cc1b91f6e3470 Mon Sep 17 00:00:00 2001 From: beo3000 Date: Sat, 27 Dec 2025 09:03:50 +0100 Subject: [PATCH] Fix: Register GameLogicServices as transient MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Scoped services can't be resolved from singleton (GameDefinitionRegistry). Logic services are stateless, so transient is appropriate. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- src/Koogle.Application/Games/GameDefinitionRegistry.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Koogle.Application/Games/GameDefinitionRegistry.cs b/src/Koogle.Application/Games/GameDefinitionRegistry.cs index 577ea11..7978cab 100644 --- a/src/Koogle.Application/Games/GameDefinitionRegistry.cs +++ b/src/Koogle.Application/Games/GameDefinitionRegistry.cs @@ -139,9 +139,9 @@ public static class GameRegistrationExtensions where TDefinition : class, IGameDefinition, new() where TLogicService : class, IGameLogicService { - // Register the logic service - services.AddScoped(); - services.AddScoped(typeof(TLogicService), typeof(TLogicService)); + // Register the logic service as transient (stateless, can be resolved from singleton registry) + services.AddTransient(); + services.AddTransient(typeof(TLogicService), typeof(TLogicService)); // Register initializer to add definition to registry services.AddTransient(sp =>