Пример #1
0
        /// <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());
            }
        }