Nguon: Microsoft Learn · .NET 8.0

Thay đổi đột phá (Breaking change): Các API JavaScript kế thừa của Mono và Emscripten không còn được xuất ra namespace toàn cục trong ứng dụng Blazor WebAssembly

Nguồn: Legacy Mono and Emscripten APIs not exported to global namespace

Blazor WebAssembly không còn xuất các API kế thừa của Mono và Emscripten ra namespace toàn cục. Những API này hiện có thể truy cập thông qua đối tượng Blazor.runtime.

Phiên bản giới thiệu

.NET 9 GA

Hành vi cũ

Các API Mono kế thừa (MONOBINDING) và đối tượng Module của Emscripten được xuất ra đối tượng window toàn cục. Ví dụ: window.Module.FS trả về hệ thống tệp ảo (virtual filesystem) của Emscripten.

Hành vi mới

Đối tượng Module của Emscripten hiện được xuất ra đối tượng Blazor.runtime. Ví dụ: Blazor.runtime.Module.FS trả về hệ thống tệp ảo của Emscripten. API Mono kế thừa dùng cho interop (MONOBINDING) bị xóa hoàn toàn và được thay thế bằng JSImport/JSExport.

Loại thay đổi đột phá

Thay đổi này có thể ảnh hưởng đến tính tương thích nguồn (source compatibility).

Lý do thay đổi

Thay đổi này được thực hiện để tránh làm ô nhiễm namespace toàn cục và giữ tất cả các API có thể truy cập từ một đối tượng Blazor duy nhất.

Hành động được khuyến nghị

Thay vì truy cập các API Emscripten từ đối tượng window, hãy truy cập chúng từ đối tượng Blazor.runtime.

API bị ảnh hưởng