在.NET 7的新(非Blazor)browser-wasm运行时中,有JSImport属性用于与Javascript导入进行通信。支持许多.NET类型作为参数传递给Javascript函数。如果你传递一个Span<>或ArraySegment<>,那么你必须将它们封送为MemoryView,但我看不到任何文档来说明这实际上是什么。JS函数实际上接收了什么?它是类型化数组的 Package 器吗?
browser-wasm
JSImport
Span<>
ArraySegment<>
MemoryView
hc8w905p1#
虽然没有文档,但我们可以在这里看到MemoryView的实现:https://github.com/dotnet/runtime/blob/8cb3bf89e4b28b66bf3b4e2957fd015bf925a787/src/mono/wasm/runtime/marshal.ts#L379它的功能
set和slice的行为类似于TypedArray函数(特别是,slice创建了一个新的缓冲区。)_unsafe_create_view看起来像一个内部函数,但它是公开的,可以让您直接获得TypedArray,这会稍微更有效。
set
slice
_unsafe_create_view
1条答案
按热度按时间hc8w905p1#
虽然没有文档,但我们可以在这里看到
MemoryView
的实现:https://github.com/dotnet/runtime/blob/8cb3bf89e4b28b66bf3b4e2957fd015bf925a787/src/mono/wasm/runtime/marshal.ts#L379它的功能
set
和slice
的行为类似于TypedArray函数(特别是,slice
创建了一个新的缓冲区。)_unsafe_create_view
看起来像一个内部函数,但它是公开的,可以让您直接获得TypedArray,这会稍微更有效。