2009-11-10 79 views

回答

11
public static byte[] ReadResource(string resourceName) 
{ 
    using (Stream s = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName)) 
    { 
     byte[] buffer = new byte[1024]; 
     using (MemoryStream ms = new MemoryStream()) 
     { 
      while (true) 
      { 
       int read = s.Read(buffer, 0, buffer.Length); 
       if (read <= 0) 
        return ms.ToArray(); 
       ms.Write(buffer, 0, read); 
      } 
     } 
    } 
} 
+0

我想阅读我们的链接并在项目名为Resources的文件夹中添加的文件。使用此函数保持导致对象引用错误 – williamtroup 2009-11-11 08:48:26

+0

然后使用资源而不是当前执行上下文加载程序集。 – Anton 2009-11-12 05:23:31

1

或者在你的资源类添加此

internal static byte[] GetResource(string fileName) { 
    object obj = ResourceManager.GetObject(fileName, resourceCulture); 
    return ((byte[])(obj)); 
} 
+2

此解决方案不起作用,至少当obj是BitMap时它不起作用。 – Maciej 2012-10-25 19:55:55