我有C#项目,我在解决方案中添加了几个html文件,并将其操作标记为“资源”或“嵌入资源”(“或” - 因为我在测试时没有看到差异。)
现在我想读一读。
当我运行此代码时:
Assembly.GetExecutingAssembly().GetManifestResourceNames()
我在结果中得到3个资源名称:
MyApp.g.resources
MyApp.Properties.Resources.resources
MyApp.Resource.resources
我首先访问,找到了所需的文件名,我这样读了:
private static byte[] getResource(string name)
{
var assembly = Assembly.GetExecutingAssembly();
string resName = assembly.GetName().Name + ".g.resources";
using (var stream = assembly.GetManifestResourceStream(resName))
{
using (var reader = new System.Resources.ResourceReader(stream))
{
string res_type;
byte[] data;
reader.GetResourceData(name,out res_type,out data);
return data;
}
}
}
结果我几乎得到了我想要的东西 - 文件的内容,但是在开始时有一些垃圾字节。
如何正确地做到这一点?
更新:垃圾序列为 - 6,0,0,239,187,191。三个最后一个字节构成BOM。