2009-06-04 2 views
0

У меня есть шаблон html, который я хочу извлечь из файла ресурсов в приложении Windows Forms C# 2005.Как получить текстовый файл из файла ресурсов в C# VS.2005

Я создал папку под названием/html/внутри проекта, в которой есть один файл в нем, называемый template.html.

Я добавил файл к своим ресурсам. Я вижу его имя как шаблон, и это путь к файлу - это полное имя файла (c: /.../ project/html/template.html). Он сохраняется как ТЕКСТ, а не двоичный.

Я пробовал много методов для извлечения этого файла, но каждый раз, когда я возвращаю null. Что мне не хватает?

 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(); 

ответ

1

Вы пробовали смотреть в Reflector на свой выходной сборки, чтобы убедиться, что имя ресурса на самом деле то, что вы ожидаете, что это будет?

0

Я считаю, что вы неправильно используете свой ресурс, когда пытаетесь его восстановить.

Единственное, что вы можете сделать, это проверить сгенерированную сборку на Reflector и проверить полное имя вашего ресурса.

1

Отражатель помог в выяснении, в чем проблема, спасибо. Это то, что мне нужно было:

string template = Properties.Resources.template; 

Не может быть проще. Все остальные вещи были совершенно ненужны.

Смежные вопросы