/// <inheritdoc cref="IDeserializeObjectAsync.DeserializeAsync(Stream, Type, CancellationToken)" /> public static ValueTask <object?> DeserializeAsync(this IDeserializeObject deserializer, Stream source, Type type, CancellationToken cancellationToken = default) { if (deserializer is null) { throw new ArgumentNullException(nameof(deserializer)); } return(deserializer is IDeserializeObjectAsync d ? d.DeserializeAsync(source, type, cancellationToken) : DefaultMethods.DeserializeAsync(deserializer, source, type)); }
/// <inheritdoc cref="IDeserializeAsync{T}.DeserializeAsync(Stream, CancellationToken)"/> public static ValueTask <T> DeserializeAsync <T>(this IDeserialize <T> deserializer, Stream source, CancellationToken cancellationToken = default) { if (deserializer is null) { throw new ArgumentNullException(nameof(deserializer)); } return(deserializer is IDeserializeAsync <T> d ? d.DeserializeAsync(source, cancellationToken) : DefaultMethods.DeserializeAsync(deserializer, source)); }