public void TestBoolSerialization(bool value)
        {
            const string Name = "BoolValue";

            var element = XElementSerializer.ToXml(Name, value);

            Check.That(element.Name.LocalName).IsEqualTo(Name);

            Check.That(XElementSerializer.ToBool(element)).IsEqualTo(value);
        }
        public static UnrealApplicationSettings FromXml(XElement element)
        {
            var settings = new UnrealApplicationSettings();

            XElementSerializer.TryRead(element, nameof(settings.Name), e => settings.Name               = XElementSerializer.ToString(e));
            XElementSerializer.TryRead(element, nameof(settings.Version), e => settings.Version         = (UnrealEngineVersion)XElementSerializer.ToInt(e));
            XElementSerializer.TryRead(element, nameof(settings.ProcessName), e => settings.ProcessName = XElementSerializer.ToString(e));

            XElementSerializer.TryRead(element, nameof(settings.PatternMethod), e => settings.PatternMethod = (PatternMethod)XElementSerializer.ToInt(e));
            XElementSerializer.TryRead(element, nameof(settings.PatternModule), e => settings.PatternModule = XElementSerializer.ToString(e));
            XElementSerializer.TryRead(element, nameof(settings.Pattern), e => settings.Pattern             = XElementSerializer.ToString(e));
            XElementSerializer.TryRead(element, nameof(settings.PatternOffset), e => settings.PatternOffset = XElementSerializer.ToInt(e));

            XElementSerializer.TryRead(element, nameof(settings.UObjectNameOffset), e => settings.UObjectNameOffset               = XElementSerializer.ToInt(e));
            XElementSerializer.TryRead(element, nameof(settings.UObjectOuterOffset), e => settings.UObjectOuterOffset             = XElementSerializer.ToInt(e));
            XElementSerializer.TryRead(element, nameof(settings.FNameEntryIndexOffset), e => settings.FNameEntryIndexOffset       = XElementSerializer.ToInt(e));
            XElementSerializer.TryRead(element, nameof(settings.FNameEntryNameDataOffset), e => settings.FNameEntryNameDataOffset = XElementSerializer.ToInt(e));
            XElementSerializer.TryRead(element, nameof(settings.FNameEntryIsWide), e => settings.FNameEntryIsWide = XElementSerializer.ToBool(e));

            XElementSerializer.TryRead(element, nameof(settings.DisplayFullName), e => settings.DisplayFullName = XElementSerializer.ToBool(e));

            return(settings);
        }