Xamarin: プロジェクト内のリソースファイルを読み込む

概要

プロジェクト内に任意のファイルを配置し、それをアプリ内で読み込んで使用する。

プロジェクト内に任意のファイルを追加

プロジェクト内に任意のファイルを追加する。
*以下ではSampleText.txtを追加している。 f:id:shindo1687:20200414225905p:plain

追加したファイルのプロパティを開き、ビルドアクションをEmbeddedResourceに変更し、リソースIDをデフォルトの文字列から変更したければ任意の文字列を入力する。
*リソースIDは何も入力しなければプロジェクト名.ファイル名になる。 f:id:shindo1687:20200414225924p:plain

サンプルコード

namespace SampleGetResource
{
    // Learn more about making custom code visible in the Xamarin.Forms previewer
    // by visiting https://aka.ms/xamarinforms-previewer
    [DesignTimeVisible(false)]
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();

            String text = GetResourceFileData("SampleGetResource.SampleText.txt"); 
            System.Console.WriteLine("text = " + text);  // B)
        }

        private String GetResourceFileData(String fileName)
        {
            var assembly = typeof(MainPage).GetTypeInfo().Assembly;
            Stream stream = assembly.GetManifestResourceStream(fileName);  // A)
            using (var reader = new System.IO.StreamReader(stream))
            {
                return reader.ReadToEnd();
            }
        }
    }
}
A) assembly.GetManifestResourceStream()に指定する文字列はファイルのリソースID。
B) 読み込んだファイルの内容が出力される。
text = This is sample file.

ソースコード

github.com

ドキュメント

docs.microsoft.com