public void LoadAllMainSystems() { foreach (var type in Assembly.GetExecutingAssembly().GetTypes()) { if (type.IsAbstract || type.IsSubclassOf(typeof(MainSystem)) == false || m_mainsystems.ContainsKey(type)) { continue; } var constructor = ConstructorDelegate.FastConstruct(type, GetType()); var mainsystem = (MainSystem)constructor(this); m_mainsystems.Add(type, mainsystem); } }
public void LoadAllSubSystems() { foreach (Type type in Assembly.GetExecutingAssembly().GetTypes()) { if (type.IsAbstract == true || type.IsSubclassOf(typeof(SubSystem)) == false || m_subsystems.ContainsKey(type) == true) { continue; } Constructor constructor = ConstructorDelegate.FastConstruct(type, GetType()); SubSystem subsystem = (SubSystem)constructor(this); m_subsystems.Add(type, subsystem); } }