2008年12月5日金曜日

[.NET]埋め込みリソース

VS.NET2003以前はよく知りませんが、VS2005以降では、プロジェクトの中に好きなリソースを埋め込むことができます。画像やHTMLをアセンブリの中に埋め込むイメージです。

作業としては、以下のとおりです。
  1. 該当のリソースを右クリックし、「ビルドアクション」を「埋め込まれたりソース」にする
  2. Assembly.GetManifestResourceStreamを使用し情報を取り出す


コードのほうはこんな感じ。以下の例ではプロジェクト内にhtmlというフォルダがある前提。
(ネームスペース+フォルダ+ファイル名というところがアレ)

string result = string.Empty;

//タイプからリソース名を組み立てる(namespace + フォルダ名 + ファイル名)
//プロジェクトに「html」というフォルダがある
string resName = GetType().Namespace + ".html." + name;

try
{
    Assembly asm = Assembly.GetExecutingAssembly();
    using (StreamReader rd = new StreamReader(asm.GetManifestResourceStream(resName)))
    {
        result = rd.ReadToEnd();
    }
}
catch
{
    //特にないもしない
}

0 件のコメント: