Aracılığıyla paylaş


Blazor: Bayt dizisi birlikte çalışma

Blazor artık base64'e bayt dizilerinin kodlanması ve kodunun çözülmesini önleyen ve daha verimli bir birlikte çalışma sürecini kolaylaştıran iyileştirilmiş bayt dizisi birlikte çalışmasını destekliyor. Bu hem Sunucu hem Blazor de Blazor WebAssembly için geçerlidir.

Sürüm kullanıma sunulmuştur

ASP.NET Core 6.0

.NET'ten JavaScript'te bayt dizisi alma

Eski davranış

function receivesByteArray(data) {
    // Previously, data was a Base64-encoded string representing the byte array.
}

Yeni davranış

function receivesByteArray(data) {
    // Data is a Uint8Array (no longer requires processing the Base64 encoding).
}

Değişiklik nedeni

Bu değişiklik bayt dizileri için daha verimli bir birlikte çalışma mekanizması oluşturmak için yapılmıştır.

.NET'ten JavaScript'te bayt dizisi alma

Bir bayt dizisi geçirerek JavaScript'e çağırdığınız bu .NET birlikte çalışmasını göz önünde bulundurun:

var bytes = new byte[] { 1, 5, 7 };
await _jsRuntime.InvokeVoidAsync("receivesByteArray", bytes);

Önceki kod örneğinde, JavaScript'te gelen parametreyi Base64 kodlu dize yerine bayt dizisi olarak ele alırsınız.

JavaScript'ten .NET'e bayt dizisi döndürme

.NET bir byte[]bekliyorsa, JavaScript bir Uint8Arraysağlamalıdır. Kullanarak Base64 ile kodlanmış bir dizi btoasağlamak yine de mümkündür, ancak bu daha az performanslıdır.

Örneğin, aşağıdaki koda sahipseniz, Base64 kodlu olmayan bir Uint8Array JavaScript'ten sağlamanız gerekir:

var bytes = await _jsRuntime.InvokeAsync<byte[]>("someJSMethodReturningAByteArray");