Я пытаюсь прочитать встроенный текстовый файл с System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(resource);, но он дает мне Stream. Встроенный ресурс является текстовым файлом, поэтому, как я могу превратить этот Stream в TextReader?
Получить TextReader из потока?
Ответ 1
TextReader tr = new StreamReader(stream);
		Ответ 2
A StreamReader является подклассом TextReader, поэтому вы сможете:
using(var stream = System.Reflection.Assembly.GetExecutingAssembly().
    GetManifestResourceStream(resource))
using(var reader = new StreamReader(stream))
{
    // Use reader.
}
		Ответ 3
Вы можете прочитать свой файл ресурсов следующим образом:
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;
    }
}
		Ответ 4
Вам нужно получить StreamReader (TextReader - абстрактный базовый класс StreamReader и StringReader). Что-то вроде:
var stream = System.Reflection.Assembly.GetExecutingAssembly().
    GetManifestResourceStream(resource);
var reader = new StreamReader(stream);
var text = reader.ReadToEnd();