Ich versuche eine eingebettete Textdatei mit zu lesen, System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(resource);
aber es gibt mir eine Stream
. Die eingebettete Ressource ist eine Textdatei. Wie kann ich daraus Stream
eine machen TextReader
?
80
A
StreamReader
ist eine Unterklasse vonTextReader
, sodass Sie Folgendes tun können:using(var stream = System.Reflection.Assembly.GetExecutingAssembly(). GetManifestResourceStream(resource)) using(var reader = new StreamReader(stream)) { // Use reader. }
quelle
Sie können Ihre Ressourcendatei folgendermaßen lesen:
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; } }
quelle
foreach
Schleife ist besser als ein expliziter Enumerator.Sie müssen einen StreamReader daraus abrufen (TextReader ist eine abstrakte Basisklasse von StreamReader und StringReader). Etwas wie:
var stream = System.Reflection.Assembly.GetExecutingAssembly(). GetManifestResourceStream(resource); var reader = new StreamReader(stream); var text = reader.ReadToEnd();
quelle