После долгих поисков я не смог найти исчерпывающего ответа с примером на этот вопрос. Вот что нужно сделать, чтобы использовать DI в библиотеке классов.
В вашей библиотеке:
public class TestService : ITestService
{
private readonly ITestManager _testManager;
public TestService(ITestManager testManager)
{
_testManager = testManager;
}
}
public class TestManager : ITestManager
{
private readonly ITestManager _testManager;
public TestManager()
{
}
}
Затем расширить IServiceCollection в библиотеке:
public static class ServiceCollectionExtensions
{
public static void AddTest(this IServiceCollection services)
{
services.AddScoped<ITestManager, TestManager>();
services.AddScoped<ITestService, TestService>();
}
}
Наконец в запуск главного приложения (API, консоль и др. c):
public void ConfigureServices(IServiceCollection services)
{
services.AddTest();
}