コード例 #1
0
 public PlusModuleInfo(Type type, PlusModule instance)
 {
     Type         = type;
     Instance     = instance;
     Assembly     = Type.GetTypeInfo().Assembly;
     Dependencies = new List <PlusModuleInfo>();
 }
コード例 #2
0
 private void SetDependencies()
 {
     foreach (PlusModuleInfo module in _modules)
     {
         module.Dependencies.Clear();
         foreach (Type dependedModuleType in PlusModule.FindDependedModuleTypes(module.Type))
         {
             PlusModuleInfo PlusModuleInfo = _modules.FirstOrDefault((PlusModuleInfo m) => m.Type == dependedModuleType);
             if (PlusModuleInfo == null)
             {
                 throw new PlusInitializationException("无法找到依赖的模块 " + dependedModuleType.AssemblyQualifiedName + " for " + module.Type.AssemblyQualifiedName);
             }
             if (module.Dependencies.FirstOrDefault((PlusModuleInfo dm) => dm.Type == dependedModuleType) == null)
             {
                 module.Dependencies.Add(PlusModuleInfo);
             }
         }
     }
 }
コード例 #3
0
 private List <Type> FindAllModuleTypes()
 {
     return(PlusModule.FindDependedModuleTypesRecursivelyIncludingGivenModule(_modules.StartupModuleType));
 }