/// <summary> /// Deseralizes the specified serialized data. /// </summary> /// <param name="serializedData">The serialized data.</param> /// <param name="settings">The settings.</param> /// <returns>True if any settings were applied.</returns> public static bool Deseralize(BinaryData serializedData, Settings settings) { if (serializedData.Left == 0) { return(false); } bool applied = false; try { Log.Debug(typeof(BinarySettings), "Deserialize", applySettings); // Data version. ulong version = serializedData.GetVersion(); // Build version and stamp. Version assemblyVersion = serializedData.GetAssemblyVersion(); long ticks = serializedData.GetLong(); if (version > 0) { try { Log.Warning(typeof(BinarySettings), "Deserialize", "Serialized data version too high", version, 0, assemblyVersion, new DateTime(ticks).ToString("yyyy-MM-dd HH:mm")); } catch { Log.Warning(typeof(BinarySettings), "Deserialize", "Serialized data version too high", version, 0); } return(applied); } try { Log.DevDebug(typeof(BinarySettings), "Deserialize", version, assemblyVersion, new DateTime(ticks).ToString("yyyy-MM-dd HH:mm")); } catch { } // Blocks. while (DeserializeBlock(serializedData, settings) == DeserializationResult.Success) { applied = applySettings; } ; if (applied && !settings.Loaded) { settings.LoadSettingsPerCity = true; } } catch (Exception ex) { Log.Error(typeof(BinarySettings), "Deserialize", ex); } return(applied); }