public void Write(AppManager appManager) { Type[] testItemTypes = Assembly.GetExecutingAssembly().GetTypes() .Where(t => t.IsSubclassOf(typeof(MappedItem)) || t.IsSubclassOf(typeof(Operation))).ToArray(); XmlSerializer serializer = new XmlSerializer(appManager.GetType(), testItemTypes); var appManagerPath = ProjectManager.GetAppManagerPath(); using (FileStream fileStream = File.Create(appManagerPath)) { serializer.Serialize(fileStream, appManager); fileStream.Flush(); } }