我正在尝试阅读嵌入的文本文件,System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(resource);
但它给了我一个Stream
.嵌入式资源是一个文本文件,那我怎么能把它Stream
变成一个TextReader
?
Teo*_*zon 172
TextReader tr = new StreamReader(stream);
Run Code Online (Sandbox Code Playgroud)
dri*_*iis 18
A StreamReader
是其子类TextReader
,因此您可以执行以下操作:
using(var stream = System.Reflection.Assembly.GetExecutingAssembly().
GetManifestResourceStream(resource))
using(var reader = new StreamReader(stream))
{
// Use reader.
}
Run Code Online (Sandbox Code Playgroud)
您可以像这样读取资源文件:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
您需要从中获取一个StreamReader(TextReader是StreamReader和StringReader的抽象基类)。就像是:
var stream = System.Reflection.Assembly.GetExecutingAssembly().
GetManifestResourceStream(resource);
var reader = new StreamReader(stream);
var text = reader.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)