public void Test1() { var types = AppDomain.CurrentDomain.GetAssemblies() .Where(a => !a.IsDynamic) .SelectMany(a => a.GetTypes()) .Where(t => ReflectionUtils.ImplementsOrImplementsEquivalent(t, typeof(ISettingsFormat))); var impl = VersionUtils.GetLastImplementation(new ApplicationVersion(ApplicationVersionType.EarlyAccess, 1, 0, 0, 0), types); ; }
private static void OverrideMissionEscapeMenu(bool returnDefault = false) { if (returnDefault) { OverrideView(typeof(MissionOptionsUIHandler), typeof(MissionGauntletOptionsUIHandler)); } else { var types = AppDomain.CurrentDomain.GetAssemblies() .Where(a => !a.IsDynamic) .SelectMany(a => a.GetTypes()) .Where(t => ReflectionUtils.ImplementsOrImplementsEquivalent(t, typeof(IOptionsWithMCMOptionsMissionView))); var latestImplementation = VersionUtils.GetLastImplementation(ApplicationVersionUtils.GameVersion(), types); if (latestImplementation != null) { OverrideView(typeof(MissionOptionsUIHandler), latestImplementation?.Type !); } } }