1
resposta

Asp.net mvc Core Injeção de Dependência

Bom dia, no curso foi mencionado sobre a Injeção de Dependência (/task/27188) representada na linha abaixo

services.AddDbContext<Contexto>(opt => opt.UseSqlServer(connectionstring));

Queria confirmar se somente esta linha faz a injeção por exemplo para usar em outros momentos, por exemplo:

    public class ProdutoDAO
    {
        private Contexto _context;

        public ProdutoDAO(Contexto context)
        {
            this._context = context;
        }
....

E isso também quer dizer que não preciso usar o Ninject (Embora não disponível para o Core Ainda)

kernel.Bind<Context>().ToSelf().InRequestScope();
1 resposta

Olá Jose,

sim, como no .net core ele já cria um projeto mvc com injeção de dependências e o Entity Framework, você apenas configura o AddDbContext para dizer como injetar o contexto do Entity. Como ele já constrói sua aplicação com isso tudo pronto, você nem precisa trazer/configurar um NInject.

A única coisa que você terá que tomar cuidado é se quiser que o ProdutoDAO seja injetado nos seus controllers. Você precisa também configurar no Startup informando que o ProdutoDAO precisará ser injetado e qual estratégia ele deverá usar (um novo objeto produtoDao por requisição, por sessão ou até o mesmo para toda a aplicação). Como em geral a injeção é por requisição, o comando que você terá que adicionar após o AddDbContext seria:

services.AddTransient<ProdutoDAO>();

Aqui um link que mostra um pouco mais como fazer injeção no .net core.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software