C#と諸々

C#がメインで他もまぁ諸々なブログです
おかしなこと書いてたら指摘してくれると嬉しいです(´・∀・`)
つーかコメント欲しい(´・ω・`)

2006/09/24 01:04
なんか忘れがちなのでメモ。

テキストファイルやXMLファイルなど、全てのファイルはアセンブリに埋め込んで利用することができる。

ファイルをアセンブリに埋め込むには、ファイルのプロパティ項目の [ ビルド アクション ] を、 " 埋め込まれたリソース " に設定してビルドする。

埋め込まれたリソースを利用するには、以下のようにリフレクションを利用する。

埋め込まれたリソース"Hoge.txt"を取得する例
using System;
using System.IO;
using System.Reflection;

namespace YokoKen.Sample
{
    static class Program
    {
        void Main()
        {
            string outputText;
            Assembly thisAssembly = Assembly.GetExecutingAssembly();
            using (Stream resourceStream = thisAssembly.GetManifestResourceStream("YokoKen.Sample.Hoge.txt"))
            {
                using (StreamReader resourceReader = new StreamReader(resourceStream))
                {
                    outputText = resourceReader.ReadToEnd();
                }
            }
            Console.WriteLine(outputText);
            Console.ReadLine();
        }
    }
}

注意すべきは、AssemblyオブジェクトのGetManifestResourceStreamメソッドに渡すファイル名には、名前空間を含める必要があるということだ。この名前空間はプロジェクトのプロパティ項目の [ 規定の名前空間 ] に設定してある名前空間(サブディレクトリに配置した場合、これにディレクトリ階層が加えられた名前空間)である。
タグ: .NET C#


ありがとう。助かりました。

2013.04.17 10:34 URL | 同業者 #- [ 編集 ]












トラックバックURL↓
http://csharper.blog57.fc2.com/tb.php/26-2439866d

C#で埋め込まれたリソースにアクセスする。
http://csharper.blog57.fc2.com/tb.php/26-2439866d を参考にしていただきました。 プロジェクト名 + リソースの相対パス かと思ってましたが、正しくは、 プロジェクトの既定の名前空間 + リソースの相対パス でした。DBFluteの外だしSQLのリソースパス指定ではまっ

2008.08.29 17:56 | mtaoの三分間日記。