.NET Core 3.1, VS 2019
public class TestServiceRepository : ITestServiceRepository
{
readonly ILogger<TestServiceRepository> _logger;
readonly TestServiceDbContext _context;
public TestServiceRepository(ILogger<TestServiceRepository> logger, TestServiceDbContext context)
{
_logger = logger;
_context = context;
}
...
public void TestMethod1()
{
var services = new ServiceCollection();
services.AddDbContext<TestServiceDbContext>(opt => opt.UseInMemoryDatabase("TodoList"));
services.AddScoped<ITestServiceRepository, TestServiceRepository>();
services.AddScoped<ICurrencyRatesAgent, CurrencyRatesAgent>();
services.AddScoped<IMapper, DemoMapper>();
using (ServiceProvider serviceProvider = services.BuildServiceProvider())
{
var appService = serviceProvider.GetRequiredService<ITestServiceRepository>();
На последней строке ловлю
System.InvalidOperationException: Unable to resolve service for type 'Microsoft.Extensions.Logging.ILogger`1[TestService.Datastorage.TestServiceRepository]' while attempting to activate 'TestService.Datastorage.TestServiceRepository'.
При этом вызов такого кода из webapi controller проходит на ура, т.е. там как-то Microsoft.Extensions.Logging.ILogger резолвится? при том что никакого инициализатора для Microsoft.Extensions.Logging.ILogger в Startup.cs нет и в помине . Как мне в Unit test project подсунуть нужный инстанс Microsoft.Extensions.Logging.ILogger?
Здравствуйте, Glestwid, Вы писали:
G>При этом вызов такого кода из webapi controller проходит на ура, т.е. там как-то Microsoft.Extensions.Logging.ILogger резолвится? при том что никакого инициализатора для Microsoft.Extensions.Logging.ILogger в Startup.cs нет и в помине .
Там может быть AddLogging. Но его вызывает кто не попадя.
G> Как мне в Unit test project подсунуть нужный инстанс Microsoft.Extensions.Logging.ILogger?
services.AddLogging()
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>