public object ReadCombine(XmlReader reader)
        {
            DataItem data = (DataItem)Read(reader);

            // Both combine and SolutionFolder use the same element name, but the types are different
            if (data.Name == "Combine" && objectType == typeof(SolutionFolder))
            {
                data.Name = "SolutionFolder";
            }

            SolutionFolder    folder;
            IExtendedDataItem obj = (IExtendedDataItem)serializer.CreateInstance(objectType, data);
            Solution          sol = obj as Solution;

            if (sol != null)
            {
                folder = sol.RootFolder;
                sol.ConvertToFormat(MD1ProjectService.FileFormat, false);
                sol.FileName = serializer.SerializationContext.BaseFile;
                folder.ExtendedProperties ["FileName"] = serializer.SerializationContext.BaseFile;
            }
            else
            {
                folder = (SolutionFolder)obj;
                obj.ExtendedProperties ["FileName"] = serializer.SerializationContext.BaseFile;
            }

            // The folder entries must be added before deserializing the folder
            // since other folder members depend on it

            foreach (SolutionItem ce in entries)
            {
                folder.Items.Add(ce);
            }

            serializer.Deserialize(obj, data);

            if (sol != null)
            {
                CreateSolutionConfigurations(sol);
                LoadStartupMode(sol);
            }


            return(obj);
        }