首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 建立與測試組件(DLL)完整教學:從類別庫專案到客戶端呼叫

     編輯:關於C語言

什麼是 .NET 組件?

組件是 .NET 應用程式的部署、版本控制、安全性與型別識別的基本單位。以 DLL 形式存在,包含編譯後的 IL 代碼、中繼資料與資訊清單。C# 建立組件極為簡單,無需像 C++ COM 那樣處理註冊表、GUID、介面定義語言(IDL)等複雜細節。

步驟一:建立類別庫專案

  1. Visual Studio → 檔案 > 新增 > 專案
  2. 選擇 Visual C# > 類別庫
  3. 命名專案(如 MathLibrary),設定位置,確定

專案預設包含 Class1.cs 與 AssemblyInfo.cs(組件屬性:版本、公司、著作權等)。

步驟二:設計公用 API(命名空間、類別、方法、屬性)

namespace MathLibrary
{
    using System;

    /// 
    /// 提供基本數學運算的元件
    /// 
    public class Calculator
    {
        private bool _isEnabled = true;

        public Calculator() { }

        /// 
        /// 兩數相加
        /// 
        public long Add(long val1, long val2)
        {
            return val1 + val2;
        }

        /// 
        /// 啟用/停用狀態
        /// 
        public bool IsEnabled
        {
            get => _isEnabled;
            set => _isEnabled = value;
        }
    }
}

關鍵要點

  • 命名空間:邏輯組織型別,避免名稱衝突(如 MathLibrary)
  • public 修飾詞:只有公開型別與成員可被外部組件存取
  • XML 文件註解:支援 IntelliSense 與自動產生 API 文件

步驟三:建置組件

  • Visual Studio:建置 > 建置方案(或 Ctrl+Shift+B)
  • 輸出位置:bin\Debug\MathLibrary.dll(或 Release 目錄)
  • 命令列:csc /target:library /out:MathLibrary.dll Calculator.cs

步驟四:建立客戶端應用程式測試

  1. 方案總管右鍵方案 → 新增 > 新專案 → 主控台應用程式(如 MathClient)
  2. 在客戶端專案 參考 右鍵 → 加入參考 → 專案 → 勾選 MathLibrary
  3. 或直接瀏覽選取 MathLibrary.dll

步驟五:客戶端呼叫程式碼

using System;
using MathLibrary; // 匯入組件命名空間

namespace MathClient
{
    class Program
    {
        static void Main(string[] args)
        {
            var calc = new Calculator();
            
            long sum = calc.Add(23, 40);
            Console.WriteLine($"23 + 40 = {sum}");
            
            calc.IsEnabled = false;
            Console.WriteLine($"元件狀態: {(calc.IsEnabled ? "啟用" : "停用")}");
            
            Console.ReadKey();
        }
    }
}

進階主題:強式名稱、GAC 與版本控制

強式名稱簽署

確保組件唯一身分,防止偽造與衝突:

  1. 開發人員命令提示字元:sn -k MyKey.snk
  2. 專案屬性 → 簽署 → 勾選 為組件簽署 → 選取 MyKey.snk
  3. 重新建置,組件將擁有公開金鑰 Token

安裝至全域組件快取 (GAC)

gacutil /i MathLibrary.dll

適用於多應用程式共用的組件。私有組件(僅單一應用程式使用)只需置於應用程式目錄即可,無需安裝 GAC。

組件版本號結構

主要版本.次要版本.建置編號.修訂編號(如 1.0.0.0)

  • 主要/次要:破壞性變更 / 新增功能但相容
  • 建置/修訂:自動化建置編號 / 熱修補
  • AssemblyVersion:執行期繫結依據
  • AssemblyFileVersion:檔案屬性顯示用

常見問題與除錯技巧

問題原因解決方案
找不到組件/型別參考路徑錯誤、未複製到輸出目錄檢查參考屬性 複製到本機 = True
版本衝突多個版本同時載入使用強式名稱、bindingRedirect 設定
MissingMethodException執行期版本與編譯期不符重新編譯客戶端、檢查版本原則

總結

C# 建立組件流程:類別庫專案 → 設計 public API → 建置 DLL → 客戶端加入參考 → 呼叫。善用命名空間組織、XML 註解、強式名稱與版本策略,即能構建可重用、可維護、企業級的元件庫。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved