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)