我有一个组件库,它使用JS代码生成一个图像作为base64字符串,该图像需要转换到C#。图像大小大于MaximumReceiveMessageSize。
我可以在C#中获取MaximumReceiveMessageSize属性的值吗?我需要一种方法来正确地将图片分割成块,或者其他一些方法来传输它
我的组件可以在Wasm或Server应用程序中使用。我无法更改MaximumReceiveMessageSize属性的值。
感谢
使用从JavaScript到.NET的stream中描述的流解决了我的问题。
来自Microsoft文档:
在JavaScript中:
function streamToDotNet() {
return new Uint8Array(10000000);
}
在C#代码中:
var dataReference = await JS.InvokeAsync<IJSStreamReference>("streamToDotNet");
using var dataReferenceStream = await dataReference.OpenReadStreamAsync(maxAllowedSize: 10_000_000);
var outputPath = Path.Combine(Path.GetTempPath(), "file.txt");
using var outputFileStream = File.OpenWrite(outputPath);
await dataReferenceStream.CopyToAsync(outputFileStream);
在前面的例子中:JS是一个注入的IJSRuntime实例。dataReferenceStream被写入当前用户的临时文件夹路径(GetTempPath(的磁盘(file.txt(。