public string[] LoadDemos(string DemoAssembly) { TechDemo test = new CameraTrack(); Axiom.Collections.AxiomSortedCollection<string, DemoItem> demoList = new Axiom.Collections.AxiomSortedCollection<string, DemoItem>(); Assembly demos = AppDomain.CurrentDomain.GetAssemblies().Where((assembly) => { return assembly.ManifestModule.Name == DemoAssembly; }).First(); Type[] demoTypes = demos.GetTypes(); Type techDemo = demos.GetType("Axiom.Demos.TechDemo"); foreach (Type demoType in demoTypes) { if (demoType.IsSubclassOf(techDemo)) { demoList.Add(demoType.Name, new DemoItem(demoType.Name, demoType)); } } string[] demoStrings = new string[demoList.Count]; int i = 0; foreach (var demo in demoList) { demoStrings[i++] = demo.Key; } return demoStrings ; }