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

在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 Responses

  1. 老不 六月 19 2007 , 14:21
    看不懂...潜水...
    #1
  2. 下一秒 六月 19 2007 , 23:16
    下一秒
    这又要学习哈
    #2
  3. 888 六月 20 2007 , 20:53
    888
    woiqi
    #3

Write a comment:



(将显示你的Gravatar图标)  



[b][/b] - [i][/i] - [u][/u]- [quote][/quote]

:-/ ^_^ :d :o :kiss: :) :p :se: [yeah] :( :love: :han: :up: :cry: :zzz: o_o

评论提交有问题?