Blazor: interoperabilidad de matriz de bytes
Blazor ahora admite la interoperabilidad optimizada de matriz de bytes, lo que evita codificar y descodificar matrices de bytes en Base64 y facilita un proceso de interoperabilidad más eficaz. Esto se aplica a Blazor Server y a Blazor WebAssembly.
ASP.NET Core 6.0
function receivesByteArray(data) {
// Previously, data was a Base64-encoded string representing the byte array.
}
function receivesByteArray(data) {
// Data is a Uint8Array (no longer requires processing the Base64 encoding).
}
Este cambio se realizó para crear un mecanismo de interoperabilidad más eficaz para las matrices de bytes.
Considere esta interoperabilidad de .NET, donde se llama a JavaScript pasando una matriz de bytes:
var bytes = new byte[] { 1, 5, 7 };
await _jsRuntime.InvokeVoidAsync("receivesByteArray", bytes);
En el ejemplo de código anterior, trataría el parámetro entrante en JavaScript como una matriz de bytes y no como una cadena con codificación Base64.
Si .NET espera un elemento byte[]
, JavaScript debe proporcionar un objeto Uint8Array
. Todavía es posible proporcionar una matriz codificada en Base64 mediante btoa
, pero con un rendimiento menor.
Por ejemplo, si tiene el código siguiente, debe proporcionar un elemento Uint8Array
de JavaScript que no esté codificado con Base64:
var bytes = await _jsRuntime.InvokeAsync<byte[]>("someJSMethodReturningAByteArray");
Comentarios de .NET
.NET es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios: