Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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;
        }