Как получить текстовый файл из файла ресурсов в C # VS.2005 - PullRequest
0 голосов
/ 04 июня 2009

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

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

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

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

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

Ответы [ 3 ]

1 голос
/ 04 июня 2009

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

string template = Properties.Resources.template;

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

1 голос
/ 04 июня 2009

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

0 голосов
/ 04 июня 2009

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

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

...