Saltar al contenido

¿Cómo usar Span en Convert.TryFromBase64String()?

Ya no necesitas indagar más en internet porque llegaste al lugar correcto, tenemos la respuesta que buscas pero sin liarte.

Solución:

Como está escrito en las preguntas vinculadas, System.Span es una nueva característica de C# 7.2 (y la Convert.TryFromBase64String es una característica más nueva de .NET Core)

Usar System.Span<> tienes que instalar un paquete nuget:

Install-Package System.Memory

Entonces para usarlo:

byte[] buffer = new byte[((b64string.Length * 3) + 3) / 4 -
    (b64string.Length > 0 && b64string[b64string.Length - 1] == '=' ?
        b64string.Length > 1 && b64string[b64string.Length - 2] == '=' ?
            2 : 1 : 0)];

int written;
bool success = Convert.TryFromBase64String(b64string, buffer, out written);

Donde b64string es tu base-64 string. El tamaño demasiado complicado para buffer debe ser la longitud exacta del búfer en función de la longitud del b64string.

Podrías usarlo así, haciendo uso de todos los TryFromBase64String argumentos:

public string DecodeUtf8Base64(string input)

  var bytes = new Span(new byte[256]); // 256 is arbitrary

  if (!Convert.TryFromBase64String(input, bytes, out var bytesWritten))
  
    throw new InvalidOperationException("The input is not a valid base64 string");
  

  return Encoding.UTF8.GetString(bytes.Slice(0, bytesWritten));

Te mostramos las reseñas y valoraciones de los usuarios

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *