Stati c класс 100%. Вы не можете сделать это. Тем не менее, здесь, вероятно, нет необходимости в настоящем классе stati c. Вместо этого вы должны использовать обычный класс, зарегистрировать его как одноэлементный, а затем внедрить его там, где вам это нужно. Контекст является сервисом с заданной областью, поэтому вы все еще не можете напрямую внедрить его в класс, но вы можете внедрить IServiceProvider
и использовать шаблон поиска службы:
using var scope = _serviceProvider.CreateScope();
using var context = scope.ServiceProvider.GetRequiredService<MyContext>();
// do something with context
Важно отметить, что вы можете только использовать контекст, в пределах которого он определен. Вы не можете делать с ним что-то вроде набора поля или свойства в классе. Вы должны будете использовать приведенный выше код в каждом методе, который должен использовать контекст в классе.