Mac*_*ski 1 c# progressive-web-apps blazor blazor-client-side blazor-webassembly
我的项目是在Blazor WASM 中创建的(我不想使用 Blazor 服务器)
我想从 wwwroot 读取 XSD 文件:
在我的 XsdService.cs - C# 类中,我正在尝试:
string pathToXsd = Path.Combine("plcda","extPL_r2.xsd");
string transformataHTML = System.IO.File.ReadAllText(pathToXsd);
Run Code Online (Sandbox Code Playgroud)
但是,我总是收到错误:
Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100]
Unhandled exception rendering component: Could not find a part of the path "/plcda/extPL_r2.xsd".
System.IO.DirectoryNotFoundException: Could not find a part of the path "/plcda/extPL_r2.xsd".
Run Code Online (Sandbox Code Playgroud)
那么是否有机会将自定义/静态/本地文件包含到 Blazor WASM 中?即使应用程序离线也能阅读它们?
创建对文件的 Http GET 调用。将 Blazor wasm 视为 SPA 应用程序。运行您的应用程序所需的所有文件都下载到用户浏览器中。其他一切如图像都是根据要求获取的。就像浏览器请求图像一样。
@inject HttpClient _client
@code {
async Task GetXDSFile()
{
var byteOfTheFile = await _client.GetByteArrayAsync("plcda/extPL_r2.xsd");
}
}
Run Code Online (Sandbox Code Playgroud)
此示例仅将文件作为字节数组获取。其他版本的 Get 可能更适合您GetStreamAsync。