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