public static Solution Deserialize(string path)
        {
            XmlSerializer serializer = new XmlSerializer(typeof(Solution));

            using (XmlReader Reader = XmlReader.Create(path))
            {
                Solution solution = (Solution)serializer.Deserialize(Reader);

                HistoryCollection histories = HistoryCollection.Deserialize();
                if (histories.Contains(solution.Name))
                {
                    histories[solution.Name].Extension = solution.Extension;
                    histories[solution.Name].Path      = solution.Path;
                    histories[solution.Name].OpenTime  = DateTime.Now;
                }
                else
                {
                    histories.Add(new History()
                    {
                        Name = solution.Name, Extension = solution.Extension, Path = solution.Path, OpenTime = DateTime.Now
                    });
                }
                histories.Serialize();

                return(solution);
            }
        }
        public void Serialize()
        {
            if (!Directory.Exists(Path))
            {
                Directory.CreateDirectory(Path);
            }
            XmlSerializer serializer = new XmlSerializer(typeof(Solution));

            using (XmlWriter xmlWriter = XmlWriter.Create(Path + @"\" + Name + ".gse"))
            {
                serializer.Serialize(xmlWriter, this);
            }

            HistoryCollection histories = HistoryCollection.Deserialize();

            if (histories.Contains(Name))
            {
                histories[Name].Extension = Extension;
                histories[Name].Path      = Path;
                histories[Name].SaveTime  = DateTime.Now;
            }
            else
            {
                histories.Add(new History()
                {
                    Name = Name, Extension = Extension, Path = Path, SaveTime = DateTime.Now
                });
            }
            histories.Serialize();
        }