public void Save(string filename) { System.IO.FileInfo f = new System.IO.FileInfo(filename); Serialization.Palettes.Base filter = GetFilterForExtension(f.Extension); if (filter == null) { throw new Exception("No palette file filters found that handles " + filename); } filter.Save(filename, this); }
public static Palette CreateFromFile(string filename) { System.IO.FileInfo f = new System.IO.FileInfo(filename); if (!f.Exists) { throw new System.IO.FileNotFoundException("Palette file doesn't exist: " + filename); } Serialization.Palettes.Base filter = GetFilterForExtension(f.Extension); if (filter == null) { throw new Exception("No palette file filters found that handles " + filename); } return(filter.Load(filename)); }
public static Serialization.Palettes.Base GetFilterForExtension(string extension) { extension = extension.ToLower(); if (extension.StartsWith(".")) { extension = extension.Remove(0, 1); } Dictionary <string, List <Type> > extAndTypes = GetAvailableFileFormats(); if (!extAndTypes.ContainsKey(extension)) { return(null); } Type type = extAndTypes[extension][0]; ConstructorInfo ci = type.GetConstructor(new Type[] { }); Serialization.Palettes.Base palFilter = (Serialization.Palettes.Base)ci.Invoke(new object[] { }); return(palFilter); }