今、私はクラスにそれらのほんの一握りを持っています:
string upgrade_file
= new StreamReader(Assembly.GetExecutingAssembly().GetManifestResourceStream(
Assembly.GetExecutingAssembly().GetName().Name
+ ".schemas.template.db_upgrades.txt")
).ReadToEnd();
埋め込みリソースへのアクセスを簡素化するためのラッパー関数を作成できます (必要に応じて作成します) が、.Net を使用してネイティブにアクセスするためのより簡単で洗練された方法はありますか?
たとえば、GetManifestResourceStream(...) が静的でないのは奇妙だと思います。別の例: テキスト ファイルのストリームではなく文字列を返すメソッドはありますか?
更新 1 :
明確にするために、サブディレクトリにテキストファイルがあり、それが必要です:
- これらのファイルは個別のファイルのままです (たとえば、個別にソース管理できるようにするため)。
- これらのファイルは、埋め込みリソースのままです。つまり、アセンブリでコンパイルされます。
今、私はこの画像に示すようにこれをやっています:
更新 2 :
ファイルへのアクセスを簡素化するために、回答から何も使用できませんでした。
他の誰かが役に立つかもしれない場合に備えて、私が現在使用しているヘルパーメソッドを次に示します。
/// <summary>
/// Get the content of a text file embedded in the enclosing assembly.
/// </summary>
/// <param name="resource">The "path" to the text file in the format
/// (e.g. subdir1.subdir2.thefile.txt)</param>
/// <returns>The file content</returns>
static string GetEmbeddedTextFile(string resource)
{
return new StreamReader(Assembly.GetExecutingAssembly().GetManifestResourceStream(
Assembly.GetExecutingAssembly().GetName().Name + "." + resource)).ReadToEnd();
}