posts - 609,  comments - 13,  views - 64万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

官方文档: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   邢帅杰  阅读(1357)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
历史上的今天:
2021-10-25 java获取参数
点击右上角即可分享
微信分享提示