您的位置:首页 > 编程语言 > C#

C#中使用嵌入的资源

2011-10-18 20:19 232 查看
1、嵌入资源

首先,我们来看一个简单的示例,了解如何实现嵌入。假设要在基于 Windows® 窗体的应用程序中嵌入一个名为1.jpg 的图形图像。首先,要将该文件添加到 Visual Studio® 项目中。然后,在该文件的属性表中,将生成方式设置为嵌入的资源,如图 1 所示。这样,就指示 Visual Studio 将该文件嵌入输出程序集 .exe 文件的物理图像了。

一旦将某个文件作为资源嵌入,就必须了解如何在运行时访问它。请参见以下代码片段,它先获得对当前程序集对象的引用,然后调用 GetManifestResourceStream 方法以获得对嵌入的资源文件基于流的访问。该代码假定导入了 System.Reflection 和 System.IO 命名空间:

2、调用方式:

        private void button4_Click(object sender, EventArgs e)

      {

            Assembly asm = Assembly.GetExecutingAssembly();

            string ResourceName = "OracleToAccess.1.jpg";

            Stream pStream = asm.GetManifestResourceStream(ResourceName);

            //'*** convert stream into image and load in    '*** picture box

            Image img = Image.FromStream(pStream);

            pictureBox1.Image = img;

       }

3、文本文件

如果为文本文件sqlfnc.txt,

调用如下:

public string getStrByResFileName(string ResourceName)

        {

            Assembly asm = Assembly.GetExecutingAssembly();           

            Stream pStream = asm.GetManifestResourceStream(ResourceName);

            string str = "";

            StreamReader m_streamReader = new StreamReader(pStream, System.Text.Encoding.GetEncoding("GB2312"));//中文乱码加上System.Text.Encoding.Default,或则System.Text.Encoding.GetEncoding("GB2312")

            //使用StreamReader类来读取文件

            m_streamReader.BaseStream.Seek(0, SeekOrigin.Begin);

            // 从数据流中读取每一行,直到文件的最后一行,并在richTextBox1中显示出内容

            string strLine = m_streamReader.ReadLine();

            while (strLine != null)

            {

                str += strLine + "\n";

                strLine = m_streamReader.ReadLine();

            }

            //关闭此StreamReader对象

            m_streamReader.Close();

            return str;

        }

        private void button4_Click(object sender, EventArgs e)

        {

            MessageBox.Show(getStrByResFileName("OracleToAccess.sqlfnc.txt"));

        }

9c24
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息