Exemplo n.º 1
0
 private static void AddModules(List <Type> moduleTypes, Type moduleType)
 {
     CoreModuleBase.CheckCoreModuleType(moduleType);
     if (moduleTypes.Contains(moduleType))
     {
         return;
     }
     moduleTypes.Add(moduleType);
     foreach (var dependedModuleType in FindDependedModuleTypes(moduleType))
     {
         AddModules(moduleTypes, dependedModuleType);
     }
 }
Exemplo n.º 2
0
        public static List <Type> FindDependedModuleTypes(Type moduleType)
        {
            CoreModuleBase.CheckCoreModuleType(moduleType);
            var source = new List <Type>();

            foreach (var dependedTypes in moduleType.GetCustomAttributes().OfType <DependsOnAttribute>())
            {
                foreach (var dependedType in dependedTypes.GetDependedTypes())
                {
                    if (!source.Contains(dependedType))
                    {
                        source.Add(dependedType);
                    }
                }
            }
            return(source);
        }