まずは普通のテキストから
えるいーだーでは初期設定ファイルをJSONファイルで設定しています
なのでこれが読めるようにならないと話にならない
Xamarin時代はNewtonsoftのJson.NETを使用していました
開発当時はマイクロソフトのサイトでもお薦めされていたのに、今見たらしれっとSystem.Textを使うように変わっている・・・・
でまあ、とりあえずMAUIで読むにはSystem.Textを使うのが本筋だよねと言うわけでまずはそもそもJSONどころか普通のファイルはどうなのよ
と思ったら実験用プロジェクトを作ってリソースどうしようかなあ
と見てみたら
/Resources/Rawの下にAboutAssets.txtと言う怪しげなファイルを発見
中身はこんな感じ
this directory (and child directories). Deployment of the asset to your application
is automatically handled by the following `MauiAsset` Build Action within your `.csproj`.
<MauiAsset Include="Resources\Raw\**" LogicalName="%(RecursiveDir)%(Filename)%(Extension)" />
These files will be deployed with you package and will be accessible using Essentials:
async Task LoadMauiAsset()
{
using var stream = await FileSystem.OpenAppPackageFileAsync("AboutAssets.txt");
using var reader = new StreamReader(stream);
var contents = reader.ReadToEnd();
}
raw assets(直訳すると生資産)をこのフォルダかサブフォルダに入れるといいよ
自動的に「MauiAsset」になるよ(それか.csprojをいじってね)
ちょっと試してみるか
xamlにボタンを追加
x:Name="FileTest"
Text="ファイルテスト"
Clicked="FileTest_Clicked" />
csにコードを追加
///assets.txtに書いてあったソースコード
{
using var stream = await FileSystem.OpenAppPackageFileAsync("AboutAssets.txt");
using var reader = new StreamReader(stream);
var contents = reader.ReadToEnd();
Debug.WriteLine(contents);//うまく読めてるか見てみたいから追加(using System.Diagnostics;)
}
///asyncを追加する
private async void FileTest_Clicked(object sender, EventArgs e)
{
await LoadMauiAsset(); //ボタンクリックから追加した関数をコールする
}
あら、綺麗に読めちゃったね
これが最初から用意されてると言う事は非同期推奨なのかぁ
これで実行
おお、WindowsでもAndroidでも読めた
JSONの前に普通のファイルを試したら読めたので
コメント
コメントを投稿