如何动态地使用Resources.resx我可以动态添加新项目

时间:2011-04-16 12:09:35

标签: c# .net wpf

任何人都可以告诉我如何动态地在'Resources.resx'中添加资源(图像,字符串等) 我需要在运行时从程序向Resources.resx添加一个新的位图。 我使用的代码是
     ` ResourceWriter rw;       rw = new ResourceWriter(“myResources.resources”);

  rw.AddResource("anImage", new Bitmap("winter.jpg"));

  rw.AddResource("welcomeString", "www.java2s.com");
  rw.Generate();`

但我在Resources.resx中找不到任何内容。请告诉我如何使用ResourceWriter。

1 个答案:

答案 0 :(得分:2)

您可以使用ResourceWriter来做到这一点,但我不建议将动态资源写入resx文件。相反,我会使用某种数据库(即嵌入式数据库)。

编辑无效答案

对不起,我不准确。我的建议告诉你如何创建编译资源文件(扩展名为.resources的文件)​​,而不是原始的.resx文件。以下代码的作用是,它能够将图像(作为System.Drawing)写入名为my.resources的文件中。你肯定可以用ResourceReader读出一个:

        DialogResult result = openFileDialog1.ShowDialog();
        if (result == DialogResult.OK)
        {
            Bitmap bitmap = new Bitmap(openFileDialog1.FileName);
            IResourceWriter writer = new ResourceWriter("my.resources");
            writer.AddResource("myImage", bitmap);
            writer.Close();
        }

您似乎需要Close()代替Generate()。我认为通过关闭资源流会强制它写入磁盘 您可以通过使用某个十六进制编辑器预览文件(my.resources)来确保它在那里。