Я читал несколько постов, но, похоже, ничего не подходит для моей проблемы.
Я разрабатываю консольное приложение с .Net Core 2.1 и EF Core, пытаясь следовать советам Microsoft, но я сталкиваюсьсо следующей проблемой.
У меня есть проект с именем myproject.data , который содержит все интерфейсы и службы.Это, например,
ILeagueService.cs
public interface ILeaguesService
{
List<Leagues> GetAllLeaguesValids();
}
LeagueService.cs
private statsContext _context;
public LeaguesService(statsContext context)
{
_context = context;
}
public List<Leagues> GetAllLeaguesValids()
{
return _context.Leagues.Where(x => (x.DateFirstMatch != null || x.CurrentLastSeason == true) && x.Active == true).OrderBy(x => x.Id).ToList();
}
Тогда яразделите все методы моего приложения, и все они наследуются от одного класса.В этом классе Base.cs я настраиваю ServiceProvider
Base.cs
public ServiceProvider _serviceProvider;
public Base()
{
ConfigureServices();
_config = new HelperConfig(CONFIG_FILE);
_html = GetHelperHtml();
_context = GetContext();
}
private void ConfigureServices()
{
_serviceProvider = new ServiceCollection()
.AddScoped<ILeaguesService, LeaguesService>()
.BuildServiceProvider();
}
Когда я пытаюсь использовать LeagueService в одном изметоды, которые я получаю, «Невозможно разрешить службу для типа myproject.stats.statsContext», ошибка
GetNextMatches.cs
private ILeaguesService _leagueService;
public GetNextMatches()
{
_config.GetSection(AppsettingsModel.BetExplorerUrlsSection).Bind(betExplorerSectionKeys);
_leagueService = _serviceProvider.GetService<ILeaguesService>(); <-- In this line I get the error
}