using Microsoft.Extensions.DependencyInjection;
public static void Main()
var services = new ServiceCollection();
services.AddTransient<IService, MyService>();
services.AddTransient<IServiceManager, ServiceManager>();
var provider = services.BuildServiceProvider();
IServiceManager serviceManager = provider.GetRequiredService<IServiceManager>();
public interface IServiceManager
public class ServiceManager : IServiceManager
private readonly IService service;
private readonly IOtherService otherService;
public ServiceManager(IService service, IOtherService otherService)
this.otherService = otherService;
Console.WriteLine("ServiceManager(IService service, IOtherService otherService) called");
public ServiceManager(IService service)
Console.WriteLine("ServiceManager(IService service) called");
Console.WriteLine("Service injected: " + !(service is null));
Console.WriteLine("Other service injected: " + !(otherService is null));
public interface IService
public class MyService : IService
public interface IOtherService
public class MyOtherService : IOtherService