上一篇: 下一篇:

正确的使用资源文件

2007年06月19日  |  11:43 上午分类:未分类  |  

有时需要在项目中将一些资源嵌入到程序集中然后进行调用。

在vs中可以使用ResourceWriter类来创建一个resources资源文件

如:

 

using (ResourceWriter rw = new ResourceWriter("test.resources"))
            {
                rw.AddResource("Name", "aaaa");
                rw.AddResource("Age", "20");
                rw.AddResource("Logo", System.Drawing.Image.FromFile(@"C:\null.jpg"));
                rw.Generate();
                rw.Close();
            }

编译,执行.exe即可生成 test.resources资源文件,下面要做的就是将该文件复制到项目中。

注意的时:该文件属性中的“生成操作项”要选为“嵌入的资源”才行

生成资源文件比较简单,但调用时如果不注意的话,就会失败,就会抛出下面的错误:

但是实际上资源文件已经嵌入了。

 

using System;
using System.Collections.Generic;
using System.Text;
using System.Resources;
using System.IO;
using System.Drawing.Imaging;
using System.Reflection;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.ReadLine();
            using (ResourceWriter rw = new ResourceWriter("test.resources"))

            {
                rw.AddResource("Name", "aaaa");
                rw.AddResource("Age", "20");
                rw.AddResource("Logo", System.Drawing.Image.FromFile(@"C:\null.jpg"));
                rw.Generate();
                rw.Close();
            }

            Console.WriteLine("Create Done");
            Console.ReadLine();
            ResourceManager rm = new ResourceManager("ConsoleApplication1.test", Assembly.GetExecutingAssembly());    
            System.Drawing.Image img1 = (System.Drawing.Image)rm.GetObject("Logo");
            Console.WriteLine(img1.Size.Width);
            Console.ReadLine();
        }

    }

}

注意这里:

ResourceManager rm = new ResourceManager("ConsoleApplication1.test", Assembly.GetExecutingAssembly());  

第一个参数"ConsoleApplication1.test"弄错时,就会出现上面提到的错误。正确的应该是:

程序集的NameSpace.资源文件的文件名

这样就不会出错了

转载时务必以超链接形式标明文章原始出处和作者信息。

相关文章

  • 暂无相关日志

3 位领导已批示 关于 “正确的使用资源文件”

  1. 老不 发表于: 六月 19th, 2007 2:21 下午

    看不懂…潜水…

    [回复Ta]

  2. 下一秒 发表于: 六月 19th, 2007 11:16 下午

    这又要学习哈

    [回复Ta]

  3. 888 发表于: 六月 20th, 2007 8:53 下午

    woiqi

    [回复Ta]


发表您的评论

2412151751091918111201478131663