public void TypeToRegisterConstructor()
        {
            var ex = Assert.Throws <ArgumentNullException>(() => new TypeToRegister(null, null));

            Assert.IsTrue(ex != null);
            object model = null;

            model = new TypeToRegister(typeof(UTTypeToRegister), typeof(UTTypeToRegister));
            Assert.IsTrue(model != null);
        }
        private void RegisterType(TypeToRegister typeToRegister, ContainerBuilder containerBuilder)
        {
            var registration = containerBuilder.RegisterType(typeToRegister.type).AsSelf();

            registration.As(typeToRegister.additionalTypes);

            if (typeToRegister.isSingletone)
            {
                registration.SingleInstance();
            }
            else
            {
                registration.InstancePerDependency();
            }
        }
        public void AddTypeToRegister(
            Type type,
            bool isSingletone,
            Type[] additionalTypes,
            bool typeFromFramework = false)
        {
            var toRegister = new TypeToRegister
            {
                type            = type,
                isSingletone    = isSingletone,
                additionalTypes = additionalTypes
            };

            if (typeFromFramework)
            {
                frameworkTypesToRegister.Add(toRegister);
            }
            else
            {
                typesToRegister.Add(toRegister);
            }
        }