2009-11-10 5 views

Répondre

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

Les fichiers que je veux lire notre ajoutée sous forme de liens et dans un dossier dans le projet appelé Ressources. L'utilisation de cette fonction continue de provoquer une erreur de référence d'objet – williamtroup

+0

Ensuite, chargez l'assembly avec les ressources au lieu du contexte d'exécution en cours. – Anton

1

Ou ajouter ceci dans votre classe de ressources

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

Cette solution ne fonctionnera pas, au moins cela ne fonctionnera pas quand obj est une BitMap. – Maciej

Questions connexes