private void CreateModules(ContainerBuilder builder, ICollection <Type> moduleTypes)
        {
            foreach (var moduleType in moduleTypes)
            {
                var moduleObject = Activator.CreateInstance(moduleType) as JwellModule;
                if (moduleObject == null)
                {
                    throw new InvalidOperationException("This type is not a module: " + moduleType.AssemblyQualifiedName);
                }

                var moduleInfo = new JwellModuleInfo(moduleType)
                {
                    Instance = moduleObject
                };

                _moduleList.Add(moduleInfo);

                if (moduleType == _moduleList.StartupModuleType)
                {
                    StartupModule = moduleInfo;
                }

                builder.RegisterInstance(moduleObject).AsSelf().SingleInstance();
            }
        }
        public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }
            if (!(obj is JwellModuleInfo))
            {
                return(false);
            }

            JwellModuleInfo other = (JwellModuleInfo)obj;

            return(Type == other.Type);
        }