Fala galera!

Continuando sobre o assunto de injeção de dependência com Autofac / DAO, vamos ver agora como aplicar o mesmo exemplo utilizando um projeto ASP .NET Web Forms.

Vamos começar este exemplo do ponto em que já temos o nosso Core e vamos direto a criação do projeto Web Forms.

Vá em File -> Add -> New Project e selecione ASP.NET Web Application. Coloque um nome no projeto e clique em Ok.

Na próxima tela selecione Web Forms. Retire a autenticação e o Microsoft Azure, não vamos precisar disso agora.

Agora vamos adicionar a dependência do Autofac. Abra o Package Manager Console e digite o seguinte comando:

Após adicionar o pacote do Autofac.Web no projeto, ele vai alterar o web.config e adicionar alguns módulos.

<a href="https://i2.wp.com/www.leonardohofling.com/blog/wp-content/uploads/2015/09/Screenshot_2.png” data-rel="lightbox-image-0” data-rl_title=”” data-rl_caption=”” title="“>

e

<a href="https://i1.wp.com/www.leonardohofling.com/blog/wp-content/uploads/2015/09/Screenshot_31.png” data-rel="lightbox-image-1” data-rl_title=”” data-rl_caption=”” title="“>

Agora precisamos configurar o Global.asax. Vai ser um pouco diferente do projeto MVC.

Vamos ter que implementar a interface IContainerProviderAccessor na nossa classe Global.

Agora, outra diferença é que ao invés de utilizar de fazer o bind nos construtores da páginas, ele será feito em propriedades públicas da página.

Crie uma página chamada ExamplePage. Vamos adicionar um GridView na página para exibir os dados:

E no code-behind da página adicione o seguinte código:

A propriedade ExampleService vai receber a nossa instância do IExampleService definida no Global.asax.

Ao executar veremos o seguinte resultado:

<a href="https://i1.wp.com/www.leonardohofling.com/blog/wp-content/uploads/2015/09/Screenshot_5.png” data-rel="lightbox-image-2” data-rl_title=”” data-rl_caption=”” title="“>

Obs: Por causa do módulo http da injeção automática, tem que alterar o IIS para executar no pipeline clássico. Parar alterar essa configuração no IIS Express do Visual Studio, clique sobre o nome do projeto Web e depois selecione a aba Properties. Altere a propriedade Managed Pipeline Mode para Classic.

<a href="https://i1.wp.com/www.leonardohofling.com/blog/wp-content/uploads/2015/09/Screenshot_6.png” data-rel="lightbox-image-3” data-rl_title=”” data-rl_caption=”” title="“>

Atualizei o código fonte do exemplo do post anterior, adicionando o projeto Web Forms:

https://github.com/leonardohof/AutoFacDaoExample</a>

Fontes:

http://docs.autofac.org/en/latest/integration/webforms.html#quick-start</a>