官方文档:https://learn.microsoft.com/zh-cn/aspnet/core/blazor/hybrid/static-files?view=aspnetcore-6.0
在 .NET MAUI 应用中,使用 MauiAsset 生成操作的原始资源和 .NET MAUI file system helpers 用于静态资源。
将文件放入应用的 Resources/Raw 文件夹中。例:Resources/Raw/Data.txt。
调用 Microsoft.Maui.Storage.FileSystem.OpenAppPackageFileAsync 获取资源的 Stream。
使用 StreamReader 读取 Stream。
调用 StreamReader.ReadToEndAsync 以读取文件。
razor
@page "/"
@using System.IO
@using Microsoft.Extensions.Logging
@using Microsoft.Maui.Storage
@inject ILogger<StaticAssetExample> Logger
@code {
public string dataResourceText = "Loading resource ...";

protected override async Task OnInitializedAsync()
{
try
{
using var stream = await FileSystem.OpenAppPackageFileAsync("Data.txt");
using var reader = new StreamReader(stream);
dataResourceText = await reader.ReadToEndAsync();
}
catch (FileNotFoundException ex)
{
dataResourceText = "Data file not found.";
Logger.LogError(ex, "'Resource/Raw/Data.txt' not found.");
}
}
}
在应用仅使用 Razor 组件中的静态资源的情况下,可以从应用的 Web 根目录(wwwroot 文件夹)提供静态资源。
将资源放入 wwwroot 文件夹中。 wwwroot/data.txt 和 wwwroot/jeep-yj.png。
对于 wwwroot 中的图像,“复制到输出目录”属性使用默认设置“不复制”。
在“解决方案资源管理器”中,选择 data.txt 文件。 在文件的“属性”中,将“复制到输出目录”设置为“如果较新则复制”。
@page "/static-asset-example-2"
@using Microsoft.Extensions.Logging
@inject ILogger<StaticAssetExample2> Logger
<p>@dataResourceText</p>
<p><img alt="1991 Jeep YJ" src="/jeep-yj.png" /></p>
@code {
public string dataResourceText = "Loading resource ...";
protected override async Task OnInitializedAsync()
{
try
{
dataResourceText = await ReadData();
}
catch (FileNotFoundException ex)
{
dataResourceText = "Data file not found.";
Logger.LogError(ex, "'wwwroot/data.txt' not found.");
}
}
private async Task<string> ReadData()
{
using var stream = await FileSystem.OpenAppPackageFileAsync("wwwroot/data.txt");
using var reader = new StreamReader(stream);
return await reader.ReadToEndAsync();
}
}
//WPF和Windows Form中
private async Task<string> ReadData()
{
using var reader = new StreamReader("wwwroot/data.txt");
return await reader.ReadToEndAsync();
}

posted on 2022-10-25 09:37  邢帅杰  阅读(1132)  评论(0编辑  收藏  举报