using System; using System.Collections; using System.Xml.Serialization; namespace TextClipCreator { /// /// Collection of Text Clips /// [XmlRoot("clips")] public class Clips { string _name = ""; ArrayList _clips = new ArrayList(); bool _modified = false; public Clips() { } [XmlAttribute("name")] public string Name { get { return _name; } set { _name = value; } } [XmlElement("clip", Type=typeof(Clip))] public ArrayList TextClips { get { return _clips; } set { _clips = value; } } public bool Modified { get { return _modified; } set { _modified = value; } } } /// /// One Text Clip /// public class Clip { string _name = ""; string _content = ""; public Clip() { } public Clip(string name) { _name = name; } [XmlAttribute("name")] public string Name { get { return _name; } set { _name = value; } } [XmlText] public string Content { get { return _content; } set { _content = value; } } public override string ToString() { return _name; } } /// /// Load and Save TextClip files /// public class ClipStorage { static XmlSerializer s_ser = null; System.Xml.Serialization.XmlSerializerNamespaces s_xsn = null; public ClipStorage() { if(s_ser == null) { s_ser = new XmlSerializer(typeof(Clips)); s_xsn = new XmlSerializerNamespaces(); s_xsn.Add("", ""); } } public Clips Load(string filename) { System.Xml.XmlTextReader xtw = new System.Xml.XmlTextReader(filename); try { Clips clips = (Clips)s_ser.Deserialize(xtw); return clips; } finally { xtw.Close(); } } public void Save(Clips clips, string filename) { System.Xml.XmlTextWriter xtw = new System.Xml.XmlTextWriter(filename, System.Text.Encoding.UTF8); try { xtw.Formatting = System.Xml.Formatting.Indented; s_ser.Serialize(xtw, clips, s_xsn); } finally { xtw.Close(); } } } }