Чтение локального / stati c файла в Blazor Wasm - PullRequest
0 голосов
/ 04 августа 2020

Мой проект создан в Blazor WASM (я не хочу использовать сервер Blazor)

Я бы хотел читать файлы XSD из wwwroot:

введите описание изображения здесь

Внутри моего 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? И читать их, даже если приложение не в сети?

1 Ответ

2 голосов
/ 04 августа 2020

Создайте вызов Http GET для файлов. Думайте о Blazor wasm как о приложении SPA. Все файлы, необходимые для запуска вашего приложения, загружаются в браузер пользователя. Все остальное, например изображения, загружаются по запросу. Как изображение запрашивается браузером.

@inject HttpClient _client

@code {
    async Task GetXDSFile()
    {
        var byteOfTheFile = await _client.GetByteArrayAsync("plcda/extPL_r2.xsd");
    }
}

В этом примере файл просто выбирается как массив байтов. Другая версия Get может быть более подходящей для вас, например GetStreamAsync.

...