KeePass.Util.XmlSerialization.XmlSerializerEx.ReadAceApplication C# (CSharp) Method

ReadAceApplication() private static method

private static ReadAceApplication ( XmlReader xr ) : KeePass.App.Configuration.AceApplication
xr System.Xml.XmlReader
return KeePass.App.Configuration.AceApplication
        private static KeePass.App.Configuration.AceApplication ReadAceApplication(XmlReader xr)
        {
            KeePass.App.Configuration.AceApplication o = new KeePass.App.Configuration.AceApplication();

            if(SkipEmptyElement(xr)) return o;

            Debug.Assert(xr.NodeType == XmlNodeType.Element);
            xr.ReadStartElement();
            xr.MoveToContent();

            while(true)
            {
                XmlNodeType nt = xr.NodeType;
                if((nt == XmlNodeType.EndElement) || (nt == XmlNodeType.None)) break;
                if(nt != XmlNodeType.Element) { Debug.Assert(false); continue; }

                switch(xr.LocalName)
                {
                    case "LanguageFile":
                        o.LanguageFile = ReadString(xr);
                        break;
                    case "HelpUseLocal":
                        o.HelpUseLocal = ReadBoolean(xr);
                        break;
                    case "LastUpdateCheck":
                        o.LastUpdateCheck = ReadString(xr);
                        break;
                    case "LastUsedFile":
                        o.LastUsedFile = ReadIOConnectionInfo(xr);
                        break;
                    case "MostRecentlyUsed":
                        o.MostRecentlyUsed = ReadAceMru(xr);
                        break;
                    case "RememberWorkingDirectories":
                        o.RememberWorkingDirectories = ReadBoolean(xr);
                        break;
                    case "WorkingDirectories":
                        o.WorkingDirectoriesSerialized = ReadArrayOfString(xr);
                        break;
                    case "Start":
                        o.Start = ReadAceStartUp(xr);
                        break;
                    case "FileOpening":
                        o.FileOpening = ReadAceOpenDb(xr);
                        break;
                    case "VerifyWrittenFileAfterSaving":
                        o.VerifyWrittenFileAfterSaving = ReadBoolean(xr);
                        break;
                    case "UseTransactedFileWrites":
                        o.UseTransactedFileWrites = ReadBoolean(xr);
                        break;
                    case "FileTxExtra":
                        o.FileTxExtra = ReadBoolean(xr);
                        break;
                    case "UseFileLocks":
                        o.UseFileLocks = ReadBoolean(xr);
                        break;
                    case "SaveForceSync":
                        o.SaveForceSync = ReadBoolean(xr);
                        break;
                    case "FileClosing":
                        o.FileClosing = ReadAceCloseDb(xr);
                        break;
                    case "TriggerSystem":
                        o.TriggerSystem = ReadEcasTriggerSystem(xr);
                        break;
                    case "PluginCachePath":
                        o.PluginCachePath = ReadString(xr);
                        break;
                    default:
                        Debug.Assert(false);
                        xr.Skip();
                        break;
                }

                xr.MoveToContent();
            }

            Debug.Assert(xr.NodeType == XmlNodeType.EndElement);
            xr.ReadEndElement();
            return o;
        }