private ContainerBuilder CreateAndRegisterBuilder() { ContainerBuilder builder = new ContainerBuilder(); AutofacInstanceContextMode autoFacMode = AutofacInstanceContextMode.PerCall; new BaseDataRegistration().Register(ref builder, autoFacMode); new BaseDomainRegistration().Register(ref builder, autoFacMode); new BaseValidationRegistration().Register(ref builder, autoFacMode); new GymDataRegistration().Register(ref builder, autoFacMode); new GymDomainRegistration().Register(ref builder, autoFacMode); new GymValidationRegistration().Register(ref builder, autoFacMode); return(builder); }
public void Register(ref ContainerBuilder builder, AutofacInstanceContextMode autofacInstanceContextMode) { List <Type> tiposValidacoes = typeof(BaseDataRegistration).Assembly.GetTypes().Where(p => (p.Name.ToUpper().Contains("REPOSITORY") || p.Name.ToUpper().Contains("CONTEXT")) && !p.IsInterface && !p.Name.ToUpper().Contains("BASE")).ToList(); ContainerBuilder tempBuilder = builder; switch (autofacInstanceContextMode) { case AutofacInstanceContextMode.PerCall: tiposValidacoes.ForEach(p => tempBuilder.RegisterType(p).AsImplementedInterfaces()); break; case AutofacInstanceContextMode.PerHttpRequest: tiposValidacoes.ForEach(p => tempBuilder.RegisterType(p).AsImplementedInterfaces().InstancePerRequest()); break; case AutofacInstanceContextMode.PerLifetimeScope: tiposValidacoes.ForEach(p => tempBuilder.RegisterType(p).AsImplementedInterfaces().InstancePerLifetimeScope()); break; } builder = tempBuilder; }
public void Register(ref ContainerBuilder builder, AutofacInstanceContextMode autofacInstanceContextMode) { List <Type> tiposServicos = typeof(GymDomainRegistration).Assembly.GetTypes().Where(p => p.Name.ToUpper().Contains("SERVICE") && !p.IsInterface && !p.Name.ToUpper().Contains("BASE") && !p.Name.ToUpper().Contains("GYM")).ToList(); ContainerBuilder tempBuilder = builder; switch (autofacInstanceContextMode) { case AutofacInstanceContextMode.PerCall: tiposServicos.ForEach(p => tempBuilder.RegisterType(p).AsImplementedInterfaces()); break; case AutofacInstanceContextMode.PerHttpRequest: tiposServicos.ForEach(p => tempBuilder.RegisterType(p).AsImplementedInterfaces().InstancePerRequest()); break; case AutofacInstanceContextMode.PerLifetimeScope: tiposServicos.ForEach(p => tempBuilder.RegisterType(p).AsImplementedInterfaces().InstancePerLifetimeScope()); break; } builder = tempBuilder; }