В проекте ASP.NET Core 1.0, используя DI, как я могу передать параметры конструктору. Например, как зарегистрировать следующую службу в Startup.cs. services.AddTransient(typeof(IStateService), new StateService());
не работает, поскольку StateService() требует входного параметра типа BlogingContext. Или, есть ли альтернативный способ создания следующего сервиса с базой данных? Здесь State
- это таблица из SQL Server Db. Приложение использует EntityFrameworkCore
с подходом Code First. Я использую последнюю версию ASP.NET Core 1.0 и VS2015-Update 3, выпущенную 27 июня 2016 года.ASP.NET Core Dependency Injection, вводят параметры
Я вижу similar example here, но не тот же тип входного параметра.
Услуга:
public interface IStateService
{
IEnumerable<State> List();
}
public class StateService : IStateService
{
private BloggingContext _context;
public StateService(BloggingContext context)
{
_context = context;
}
public IEnumerable<State> List()
{
return _context.States.ToList();
}
}
Вы пробовали регистрировать 'BloggingContext' с чем-то вроде' services.AddDBContext(); 'при запуске? https://docs.asp.net/ru/latest/fundamentals/dependency-injection.html#registering-your-own-services –
mollwe
@mollwe Благодарим вас за помощь. Ваш код не будет регистрировать мою пользовательскую службу, т. Е. 'StateService' – nam
Если вы зарегистрируете государственную службу как' service.AddTransient(); ', это заставит ее работать? –
mollwe