/// <summary> /// Deserializes the next block of data. /// </summary> /// <param name="serializedData">The serialized data.</param> /// <param name="settings">The settings.</param> /// <returns>The deserialization result.</returns> private static DeserializationResult DeserializeBlock(BinaryData serializedData, Settings settings) { if (serializedData == null || serializedData.Left == 0) { return(DeserializationResult.EndOfData); } SettingsType settingsType = serializedData.PeekSettingsType(); Log.DevDebug(typeof(BinarySettings), "DeserializeBlock", applySettings, settingsType); switch (settingsType) { case SettingsType.StandardService: return(DeserializeStandardServiceSettings(serializedData, settings)); case SettingsType.HiddenService: return(DeserializeHiddenServiceSettings(serializedData, settings)); case SettingsType.ServiceRanges: return(DeserializeRangeSettings(serializedData, settings)); case SettingsType.Compatibility: return(DeserializeCompatibilitySettings(serializedData, settings)); default: throw new InvalidOperationException("Unknown settings type: " + settingsType.ToString()); } }