で埋め込まれたテキストファイルを読み込もうとしてSystem.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(resource);
いますが、が表示されますStream
。埋め込まれたリソースはテキストファイルなので、どうすればこれStream
をTextReader
?に変換できますか?
回答:
TextReader tr = new StreamReader(stream);
あなたはこのようにあなたのリソースファイルを読むことができます:
Assembly resourceAssembly = Assembly.LoadFrom(resourceFile.FullName);
string[] manifests = resourceAssembly.GetManifestResourceNames();
using (ResourceReader reader = new ResourceReader(
resourceAssembly.GetManifestResourceStream(manifests[0])))
{
foreach (IDictionaryEnumerator dict in reader)
{
string key = dict.Key as string;
object val = dict.Value;
}
}
foreach
ループは、明示的な列挙子よりも優れています。
そこからStreamReaderを取得する必要があります(TextReaderはStreamReaderとStringReaderの抽象基本クラスです)。何かのようなもの:
var stream = System.Reflection.Assembly.GetExecutingAssembly().
GetManifestResourceStream(resource);
var reader = new StreamReader(stream);
var text = reader.ReadToEnd();