建立函式庫組件

一般ASP.NET專案的共用函式會寫在 [App_Code] 資料夾之下,不過這種方式寫成的共用函式只能同一個專案中使用,若是其他專案也要使用相同的共用函式就需要把 [App_Code] 的檔案複製過去使用。
如果要撰寫跨專案使用的共用函式庫,最好的方式就是撰寫函式庫組件(Assembly),以功能將函式分類為不同的類別,將這些類別置於同一個組件中成為一個獨立檔案(*.dll),不同的專案需要使用這些函式庫組件時,只要將這個組件參考進來即可。以下就逐步說明如果建立函式庫組件及如何使用它。

一般ASP.NET專案的共用函式會寫在 [App_Code] 資料夾之下,不過這種方式寫成的共用函式只能同一個專案中使用,若是其他專案也要使用相同的共用函式就需要把 [App_Code] 的檔案複製過去使用。

如果要撰寫跨專案使用的共用函式庫,最好的方式就是撰寫函式庫組件(Assembly),以功能將函式分類為不同的類別,將這些類別置於同一個組件中成為一個獨立檔案(*.dll),不同的專案需要使用這些函式庫組件時,只要將這個組件參考進來即可。以下就逐步說明如果建立函式庫組件及如何使用它。

 

建立「類別庫」專案

新增一個專案,在範本中選擇「類別庫」項目,輸入專案名稱及位置,按下「確定」鈕,操作如圖1所示。

1 新增專案

 

執行功能表「專案\MyLib屬性」設定專案屬性,如 2所示,一般都會把組件名稱與根命名空間設為相同,根命名空間即為此專案內所有類別的預設命名空間。

另外按下「組件資訊」,可以輸入這個組件的相關資訊,如 3所示,建議至少要輸入標題、描述、組件版本、檔案版本這四項以識別組件。

2 設定專案屬性

3 組件資訊

 

 

建立函式類別

再來要加入共用函式的類別,建立將共用函式依功能分類置於不同的類別中,例如基本、檔案、資料庫等,有效的將函式分類,未來在使用上會比較便利。

執行功能表「專案\加入類別」,如 4所示,在名稱欄位中輸入BaseFunc,此即為類別名稱。按下「加入」鈕後,即會在專案中加入一個類別。

 

4 加入類別

 

假設在BaseFunc類別中加入StrSameTextStrIsEmpty這二個共用函式,其中BaseFunc類別加入NotInheritable關鍵字,將此類別標記為不可繼承。在此類別中的共用函式需加入Shared關鍵字,標記此函式為共用函式,即類別不用New即可直接使用。

另外注意在類別及函式加上的註解格式,未來在開發環境使用這些共用函式時,這些註解都會變成撰寫程式碼的即時說明,讓程式開發者在使用上更方便。

 

程式碼 1 BaseFunc類別

 

''' <summary>
''' 基本共用函式。
''' </summary>
Public NotInheritable Class BaseFunc

    ''' <summary>
    ''' 判斷兩字串是否相同,不區分大小寫。
    ''' </summary>
    ''' <param name="S1">比較的字串一。</param>
    ''' <param name="S2">比較的字串二。</param>
    Public Shared Function StrSameText(ByVal S1 As String, ByVal S2 As String) As Boolean
        Return S1.Equals(S2, StringComparison.CurrentCultureIgnoreCase)
    End Function


    ''' <summary>
    ''' 判斷字串是否為空字串。
    ''' </summary>
    ''' <param name="S">要判斷的字串。</param>
    Public Shared Function StrIsEmpty(ByVal S As String) As Boolean
        If S Is Nothing Then Return True '若S 為Nothing 也視為空字串
        Return S = String.Empty
    End Function


End Class

  

建立測試專案

在目前的方案中,加入一個測試專案,來驗證函式庫中的函式是否正確。測試專案可以視情況選擇「網站」或「Windows應用程式」的專案來做測試的動作。在此我們以建立「新網站」的方式來做為測試專案,執行功能表「檔案\加入\新網站」建立一個測試的網站專案,如 5所示。

5 加入新網站做為測試專案

 

在測試專案中加入參考,在專案頁籤中選擇MyLib專案,如 6所示。如此就可以在測試專案中使用函式庫組件中的共用函式。

在測試專案的程式碼中,先引用MyLib命名空間 (Imports MyLib),然後就可以使用MyLib命名空間中所有的類別。在程式碼中輸入BaseFunc類別後,就會帶出該類別所有的共用函式,而且原先的函式及參數註解也會出現在程式碼提示中,如 7 8所示。

6 加入參考

7 函式提示說明

 

8 函式參數提示說明

 

編譯函式庫專案

若測試完成後,請將專案的編譯組態設為Release,如 9所示。建置MyLib專案後,在原始檔的資料夾下會有 [bin\Release] 子資料夾下,會產生MyLib.dllMyLib.xml這二個檔案,其中MyLib.dll就是組件檔案,MyLib.xml是該組件XML文件檔案,也就是在程式碼中加入的註解,撰寫程式碼時提示說明也是由此檔案來載入。

9 設定編繹組態

 

使用函式庫組件

一般專案若需使用到函式庫組件,只需要MyLib.dllMyLib.xml這二個檔案,在專案中參考MyLib.dll這個檔案,即可使用函式庫組件。雖然這個函式庫組件是由VB.NET來撰寫的,可是無論是VB.NETC#或其他語言的.NET專案都可以使用該函式庫組件。

 

ASP.NET 魔法學院