Visual C# 資源檔編程–建立資源檔

來源:互聯網
上載者:User

資源檔顧名思義就是存放資源的檔案。資源檔在程式設計中有著自身獨特的優勢,他獨立於來源程式,這樣資源檔就可以被多個程式使用。同時在程式設計的時候,有時出於安全或者其他方面因素的考慮,把重要東西存放在資源檔中,也可以達到保密、安全的效果。那麼Visual C#所使用的資源檔中到底存放哪些東西呢?在用Visual C#建立資源檔大致可以存放三種類型的資料資源,分別是位元組數組、各種對象和字串。本文將結合一個程式例子來具體說明用Visual C#是如何建立資源檔的。

一.用Visual C#在建立資源檔用到的一些概念和理論:

    在.Net FrameWork SDK中的一個名字叫System.Resources名稱空間,在此名稱空間中為應用程式提供了許多建立、儲存和使用資源檔的類和介面。其中有一個類叫ResourceWriter,Visual C#就是通過調用這個類來實現建立、儲存資源檔的。

二.Visual C#如何建立資源檔:

    首先要繼承一個ResourceWriter類,然後調用ResourceWriter類的一個方法Generate ( ),就可以產生一個資源檔了。具體語句如下:

ResourceWriter rw = new ResourceWriter ( "My.resources" ) ;
rw.Generate ( ) ;

    此時在磁碟的中就會產生一個名稱為"My.resources"的資源檔,但此時的資源檔沒有任何內容,下面我們就來看看如何往資源檔中添加資源。

三.在資源檔中添加資源:

    在ResourceWriter類中提供了一個AddResource ( )方法,這個方法的作用就是往資源檔中添加資源的。在Visual C#中對不同的資源有著不同的加入方式。

(1).加入位元組數組,文法格式為:

public void AddResource ( string , byte [ ] ) ;

注釋:其中string是在使用資源檔的時候,此位元組數組在程式中的的唯一識別碼

(2).加入對象,文法格式為:

public void AddResource ( string , object );

注釋:其中string是在使用資源檔的時候,此對象在程式中的唯一識別碼

在本文程式中,我們利用這種調用方式來加入表徵圖和圖象,具體如下:

Icon ico = new Icon ( "Demo.ico" ) ;
Image canceloff = Image.FromFile ("cancel-off.png") ;
Image cancelon = Image.FromFile ( "cancel-on.png" ) ;
Image cancelover = Image.FromFile ( "cancel-over.png" ) ;
Image okdown = Image.FromFile ( "ok-down.png" ) ;
Image okoff = Image.FromFile ( "ok-off.png" ) ;
Image okon = Image.FromFile ( "ok-on.png" ) ;

rw.AddResource ( "demo.ico" , ico ) ;//在資源檔中加入表徵圖
//以下是在資源檔中加入圖象
rw.AddResource ( "cancel-off.png" , canceloff ) ;
rw.AddResource ( "cancel-on.png" , cancelon ) ;
rw.AddResource ( "cancel-over.png" , cancelover ) ;
rw.AddResource ( "ok-down.png" , okdown ) ;
rw.AddResource ( "ok-off.png" , okoff ) ;
rw.AddResource ( "ok-on.png" , okon ) ;

(3).加入字串,具體文法如下:

public void AddResource ( string1 , string2) ;

注釋:其中string1是在使用資源檔的時候,此字串在程式中的唯一識別碼在本文的程式中,是如此使用的:

rw.AddResource ( "MyStr" , "從資源檔中讀取字串!" );

至此我們已經建立了一個資源檔,並且在資源檔中加入了若干個資源,當然在這之後,還應該注意,儲存此資源檔,並關閉資源檔,具體如下:

rw.Close ( ) ;

四.建立資源檔的來源程式代碼:

    通過上面的論述,我們不難理解下面這些代碼。下列程式碼的作用就是,建立一個名稱為"My.resources"資源檔,並且在此資源檔中加入一個表徵圖資源,若干個圖象資源,和一個字串資源。具體代碼如下:

CreatResources.cs:
using System ;
using System.Drawing ;
using System.Resources ;

class CreatResource
{
public static void Main ( )
{
ResourceWriter rw = new ResourceWriter ( "My.resources" ) ;
Icon ico = new Icon ( "Demo.ico" ) ;

Image canceloff = Image.FromFile ("cancel-off.png") ;
Image cancelon = Image.FromFile ( "cancel-on.png" ) ;
Image cancelover = Image.FromFile ( "cancel-over.png" ) ;
Image okdown = Image.FromFile ( "ok-down.png" ) ;
Image okoff = Image.FromFile ( "ok-off.png" ) ;
Image okon = Image.FromFile ( "ok-on.png" ) ;

rw.AddResource ( "demo.ico" , ico ) ;

rw.AddResource ( "cancel-off.png" , canceloff ) ;
rw.AddResource ( "cancel-on.png" , cancelon ) ;
rw.AddResource ( "cancel-over.png" , cancelover ) ;
rw.AddResource ( "ok-down.png" , okdown ) ;
rw.AddResource ( "ok-off.png" , okoff ) ;
rw.AddResource ( "ok-on.png" , okon ) ;

rw.AddResource ( "MyStr" , "從資源檔中讀取字串!" ) ;
rw.Generate ( ) ;
rw.Close ( ) ;
}
}

    最好還要提醒一下,在成功編譯成執行檔案後,在執行此檔案的時候,必須保證在此執行檔案的相同目錄,存在上面代碼中提到名稱的表徵圖和圖象,否則在建立資源檔的時候是會出錯的。

五.總結:

    可見用Visual C#建立資源檔並不是一個複雜的過程,在下一篇文章中,我們將介紹如何在Visual C#使用資源檔中資源。這才是Visual C#資源檔編程的重點和痛點。當然文中所使用的資源檔就是以本文中建立的資源檔。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.