任何人都可以告诉我如何动态地在'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。
答案 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)来确保它在那里。