2009-06-04 4 views
0

J'ai un modèle html que je veux récupérer à partir du fichier de ressources dans une application de formulaire Windows 2005 C#.Comment faire pour récupérer un fichier texte à partir du fichier de ressources en C# VS.2005

J'ai créé un dossier appelé/html/dans le projet, dans lequel se trouve un fichier appelé template.html.

J'ai ajouté le fichier à mes ressources. Je vois son nom comme modèle, et son chemin de fichier est le nom de fichier complet (c: /.../project/html/model.html). Il est enregistré en tant que texte plutôt que binaire.

J'ai essayé plusieurs méthodes pour extraire ce fichier, mais chaque fois que je reçois un résultat nul. Qu'est-ce que je rate?

 Type t = GetType(); 
     Assembly a = Assembly.GetAssembly(t); 
     string file = "html.template.html"; // I've tried template and template.html 
     string resourceName = String.Concat(t.Namespace, ".", file); 

     Stream str = a.GetManifestResourceStream(resourceName); 

     if (str == null) // It fails here - str is always null. 
     { 
      throw new FileLoadException("Unrecoverable error. Template could not be found"); 
     } 
     StreamReader sr = new StreamReader(str); 
     htmlTemplate = sr.ReadToEnd(); 

Répondre

1

Avez-vous essayé de regarder dans Reflector à votre ensemble de sortie pour vérifier que le nom de la ressource est en fait ce que vous attendez que ce soit?

0

Je crois que vous indommez votre ressource lorsque vous tentez de la récupérer.

Une chose que vous pourriez faire est d'examiner l'assemblée générée avec Reflector et vérifier le nom complet de votre ressource.

1

Réflecteur aidé à trouver quel est le problème, merci. C'est ce que j'avais besoin d'avoir:

string template = Properties.Resources.template; 

Ça ne pourrait pas être plus facile vraiment. Toutes les autres choses ci-dessus étaient complètement inutiles.

Questions connexes