private void FormAutofacDemoWin_Load(object sender, EventArgs e) { var builder = new ContainerBuilder(); builder.Register(c => { var result = new DesenvolvedorNinja(); var depPrincipal = c.Resolve <ILinguagemProgramacao>(); var depSecundaria = c.Resolve <LinguagemGO>(); result.SetLinguagemProgramacao(depPrincipal, depSecundaria); return(result); }).As <IDesenvolvedor>().InstancePerDependency(); /* * builder.RegisterType<DesenvolvedorNinja>().OnActivating(c => { * var depPrincipal = c.Context.Resolve<ILinguagemProgramacao>(); * var depSecundaria = c.Context.Resolve<LinguagemGO>(); * c.Instance.SetLinguagemProgramacao(depPrincipal, depSecundaria); * }).As<IDesenvolvedor>().InstancePerDependency(); */ builder.RegisterType <LinguagemCSharp>().As <ILinguagemProgramacao>().AsSelf().InstancePerDependency(); builder.RegisterType <LinguagemGO>().AsSelf().InstancePerDependency(); _container = builder.Build(); }
private void FormAutofacDemoWin_Load(object sender, EventArgs e) { var builder = new ContainerBuilder(); builder.Register(c => { var result = new DesenvolvedorNinja(); var depPrincipal = c.Resolve<ILinguagemProgramacao>(); var depSecundaria = c.Resolve<LinguagemGO>(); result.SetLinguagemProgramacao(depPrincipal, depSecundaria); return result; }).As<IDesenvolvedor>().InstancePerDependency(); /* builder.RegisterType<DesenvolvedorNinja>().OnActivating(c => { var depPrincipal = c.Context.Resolve<ILinguagemProgramacao>(); var depSecundaria = c.Context.Resolve<LinguagemGO>(); c.Instance.SetLinguagemProgramacao(depPrincipal, depSecundaria); }).As<IDesenvolvedor>().InstancePerDependency(); */ builder.RegisterType<LinguagemCSharp>().As<ILinguagemProgramacao>().AsSelf().InstancePerDependency(); builder.RegisterType<LinguagemGO>().AsSelf().InstancePerDependency(); _container = builder.Build(); }
private void buttonObterLinguagemDefault_Click(object sender, EventArgs e) { IDesenvolvedor desenvolvedor = new DesenvolvedorNinja(new LinguagemCSharp()); MessageBox.Show(desenvolvedor.GetLinguagemProgramacao()); }