0

VS 2005 C#Windowsフォームアプリケーションのリソースファイルから取得したいhtmlテンプレートがあります。

プロジェクト内に/html/というフォルダーを作成しました。このフォルダーには、template.htmlというファイルが1つあります。

ファイルをリソースに追加しました。その名前はテンプレートと同じように表示され、ファイルパスは完全修飾ファイル名(c:/.../project/html/template.html)です。バイナリではなくTEXTとして保存されます。

このファイルを抽出するために多くの方法を試しましたが、毎回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();
4

3 に答える 3

1

リフレクターで出力アセンブリを調べて、リソース名が実際に期待どおりであることを確認しましたか?

于 2009-06-04T03:37:41.033 に答える
1

リフレクターは問題が何であるかを見つけるのを助けました、ありがとう。これは私が持っている必要があったものです:

string template = Properties.Resources.template;

本当に簡単なことはありません。上記の他のすべてのものは完全に不要でした。

于 2009-06-04T03:47:42.223 に答える
0

リソースを取得しようとすると、リソースの名前が間違っていると思います。

実行できることの1つは、Reflectorを使用して生成されたアセンブリを調べ、リソースのフルネームを確認することです。

于 2009-06-04T03:37:56.307 に答える