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.
Önerilen eylem
.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 Uint8Array
sağlamalıdır. Kullanarak Base64 ile kodlanmış bir dizi btoa
sağ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");