/// <summary> /// Implements "a tuple" that encodes the desired (de)serialization choice and streaming preference. /// </summary> /// <param name="preferStreaming">Is streaming to be preferred.</param> /// <param name="deserializer">The <see cref="IStorageDeserializer"/> used.</param> /// <param name="serializer"><see cref="IStorageSerializer"/> used.</param> /// <remarks>Note that only one, either <paramref name="deserializer"/> or <paramref name="serializer"/> can be defined, not both.</remarks> public SerializationChoice(bool preferStreaming, IStorageDeserializer deserializer, IStorageSerializer serializer) { if (deserializer == null && serializer == null) { throw new ArgumentException($"Either {nameof(deserializer)} or {nameof(serializer)} needs to be defined (not both)."); } if (deserializer != null && serializer != null) { throw new ArgumentException($"Either {nameof(deserializer)} or {nameof(serializer)} needs to be defined (not both)."); } PreferStreaming = preferStreaming; Deserializer = deserializer; Serializer = serializer; }
/// <summary> /// Implements "a tuple" that encodes the desired (de)serialization choice and streaming preference. /// </summary> /// <param name="preferStreaming">Is streaming to be preferred.</param> /// <param name="deserializer">The <see cref="IStorageDeserializer"/> used.</param> /// <param name="serializer"><see cref="IStorageSerializer"/> used.</param> /// <remarks>Note that only one, either <paramref name="deserializer"/> or <paramref name="serializer"/> can be defined, not both.</remarks> public SerializationChoice(bool preferStreaming, IStorageDeserializer deserializer, IStorageSerializer serializer) { if(deserializer == null && serializer == null) { throw new ArgumentException($"Either {nameof(deserializer)} or {nameof(serializer)} needs to be defined (not both)."); } if(deserializer != null && serializer != null) { throw new ArgumentException($"Either {nameof(deserializer)} or {nameof(serializer)} needs to be defined (not both)."); } PreferStreaming = preferStreaming; Deserializer = deserializer; Serializer = serializer; }