#define RDG13 // RDG13 RDG13F #if NEVER #elif RDG13 // using Microsoft.AspNetCore.Mvc; var builder = WebApplication.CreateBuilder(args); builder.Services.AddKeyedSingleton("fizz"); var app = builder.Build(); app.MapGet("/fizz", ([FromKeyedServices("fizz")][FromServices] IService service) => { return Results.Ok(service.Echo()); }); app.Run(); // public interface IService { string Echo(); } public class FizzService : IService { public string Echo() { return "Fizz"; } } #elif RDG13F // using Microsoft.AspNetCore.Mvc; var builder = WebApplication.CreateBuilder(args); builder.Services.AddKeyedSingleton("fizz"); builder.Services.AddKeyedSingleton("buzz"); builder.Services.AddSingleton(); var app = builder.Build(); app.MapGet("/fizz", ([FromKeyedServices("fizz")] IService service) => { return Results.Ok(service.Echo()); }); app.MapGet("/buzz", ([FromKeyedServices("buzz")] IService service) => { return Results.Ok(service.Echo()); }); app.MapGet("/fizzbuzz", ([FromServices] IService service) => { return Results.Ok(service.Echo()); }); app.Run(); public interface IService { string Echo(); } public class FizzService : IService { public string Echo() => "Fizz"; } public class BuzzService : IService { public string Echo() => "Buzz"; } public class FizzBuzzService : IService { public string Echo() { return "FizzBuzz"; } } // #endif