我的项目是在 Blazor WASM 中创建的(我不想使用Blazor服务器)
我想从wwwroot读取XSD文件:
在我尝试的XsdService.cs-c#类内部:
string pathToXsd = Path.Combine("plcda","extPL_r2.xsd");
string transformataHTML = System.IO.File.ReadAllText(pathToXsd);
但是,我总是会出错:
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".
那么,是否有机会将自定义/静态/本地文件包含到Blazor WASM中?甚至在应用程序离线时也能阅读它们?
答案 0 :(得分:2)
创建对文件的Http GET调用。将Blazor wasm视为SPA应用程序。 运行所需的所有文件都下载到用户浏览器中。像图像一样的其他所有内容均应请求获取。就像图像是浏览器所要求的。
@inject HttpClient _client
@code {
async Task GetXDSFile()
{
var byteOfTheFile = await _client.GetByteArrayAsync("plcda/extPL_r2.xsd");
}
}
此示例仅以字节数组形式获取文件。其他版本的Get可能更适合您GetStreamAsync
。