IRONSOFTWAREHOME
開發者更新

C# 反射(對於開發者的運行原理)

Jacob Mellor,首席技術官 @ Team Iron
Jacob Mellor
Updated: 2026年4月23日

在軟體開發的世界中,C# 是一個多才多藝且強大的程式語言,為開發者提供了廣泛的功能。

其中一個因其靈活性和動態性而突出的功能是反射。 C# 中的反射允許開發者在運行時檢查和交互型別的元資料。這項能力開啟了新的可能性,讓開發者能夠建立更靈活、可擴展和穩健的應用程式。

在本文中,我們將深入探討 C# 反射的複雜性,探索其關鍵概念、應用案例和最佳實踐。 我們還將找出 IronPDF 的 PdfDocument 物件的反射資訊。

Reflection in C#

反射是一種機制,允許程式在運行時檢查和操控其結構和行為。在 C# 中,通過 System.Reflection 命名空間實現,該命名空間提供類和方法來交互元資料,獲取型別資訊,以及動態建立實例。

反射的關鍵組成部分

Type 類別

C# 反射的核心是 Type 類別,它代表 .NET 運行時中的一個型別。這個類別提供了關於型別的大量資訊,包括所有的公共方法、屬性、欄位、事件和方法參數。

您可以通過使用各種方法獲取給定型別的 Type 物件,例如 typeof() 運算符或呼叫物件上的 GetType() 方法。

using System;

class Program
{
    static void Main()
    {
        // Using typeof to get Type information for string
        Type stringType = typeof(string);
        Console.WriteLine("Information about the string type:");
        Console.WriteLine($"Type Name: {stringType.Name}");
        Console.WriteLine($"Full Name: {stringType.FullName}");
        Console.WriteLine($"Assembly Qualified Name: {stringType.AssemblyQualifiedName}");
    }
}

輸出

C# Reflection (開發者如何運作):圖1

Assembly 類別

.NET 中的 assembly 是一個部署和版本控制的單位。 System.Reflection 命名空間中的 Assembly 類別提供方法來載入和描述版本集合,並動態檢查版本資訊。

您可以獲得當前執行的 assembly 的任何實例或任何參考的 assembly 的 Assembly 物件。

using System;
using System.Reflection;

class Program
{
    static void Main()
    {
        // Example 1: Get information about the executing assembly
        Assembly executingAssembly = Assembly.GetExecutingAssembly();
        Console.WriteLine("Information about the executing assembly:");
        DisplayAssemblyInfo(executingAssembly);

        // Example 2: Load the mscorlib assembly
        Assembly mscorlibAssembly = Assembly.Load("mscorlib");
        Console.WriteLine("\nInformation about the mscorlib assembly:");
        DisplayAssemblyInfo(mscorlibAssembly);
    }

    static void DisplayAssemblyInfo(Assembly assembly)
    {
        Console.WriteLine($"Assembly Name: {assembly.GetName().Name}");
        Console.WriteLine($"Full Name: {assembly.FullName}");
        Console.WriteLine($"Location: {assembly.Location}");
        Console.WriteLine("\nModules:");

        foreach (var module in assembly.GetModules())
        {
            Console.WriteLine($"- {module.Name}");
        }

        Console.WriteLine(new string('-', 30));
    }
}

輸出

C# Reflection (開發者如何運作):圖2

MethodInfo、PropertyInfo、FieldInfo 和 EventInfo 類別

這些類別分別代表公共成員、方法、屬性、欄位和事件。 它們揭示這些成員的資訊,例如它們的名稱、型別、可見性等。

您可以通過 Type 類別獲得這些類別的實例。

using System;
using System.Reflection;

class MyClass
{
    public void MyMethod() { }
    public int MyProperty { get; set; }
    public string myField;
    public event EventHandler MyEvent;
}

class Program
{
    static void Main()
    {
        // Get MethodInfo for MyMethod
        MethodInfo methodInfo = typeof(MyClass).GetMethod("MyMethod");
        Console.WriteLine($"Method Name: {methodInfo.Name}");

        // Get PropertyInfo for MyProperty
        PropertyInfo propertyInfo = typeof(MyClass).GetProperty("MyProperty");
        Console.WriteLine($"Property Name: {propertyInfo.Name}");

        // Get FieldInfo for myField
        FieldInfo fieldInfo = typeof(MyClass).GetField("myField");
        Console.WriteLine($"Field Name: {fieldInfo.Name}");

        // Get EventInfo for MyEvent
        EventInfo eventInfo = typeof(MyClass).GetEvent("MyEvent");
        Console.WriteLine($"Event Name: {eventInfo.Name}");
    }
}

輸出

C# Reflection (開發者如何運作):圖3

介紹IronPDF

IronPDF - 官方網站 是一個強大的 C# 程式庫,為在 .NET 應用程式中處理 PDF 文件提供全面的功能集。 它允許開發者輕鬆建立、處理和從現有物件(如 PDF 文件)中提取資料,使用簡單直觀的 API。

IronPDF 一個顯著的特點是能無縫整合到現有 C# 專案中,使其成為增加 PDF 生成和處理能力的絕佳選擇。

IronPDF 的關鍵功能

IronPDF 的一些主要功能如下:

  1. **PDF 生成:**輕鬆從零開始生成 PDF 文件,或將 HTML、圖片和其他格式轉換為 PDF。
  2. **PDF 處理:**通過新增、刪除或修改文字、圖片、註釋來編輯現有 PDF。
  3. **PDF 提取:**從 PDF 文件中提取文字、圖片和元資料以進行進一步處理。
  4. **HTML 到 PDF 轉換:**將 HTML 內容(包括 CSS 和 JavaScript)轉換為高品質的 PDF。
  5. **PDF 表單:**程式化建立和填寫互動式 PDF 表單。
  6. **安全性:**應用加密和密碼保護來保護 PDF 文件。

現在,我們來研究如何在詳細的程式碼範例中使用 C# 反射與 IronPDF。

使用IronPDF的C#反射

在這個簡單的例子中,我們將使用 C# 反射獲取 IronPDF PDF 文件物件的資訊。

安裝 IronPDF NuGet 套件

確保將 IronPDF NuGet 套件安裝到您的專案中。 您可以使用 NuGet 套件管理器控制台來進行安裝:

PM > Install-Package IronPdf

使用 C# 反射獲取 IronPDF PDF 文件物件的資料

using IronPdf;
using System;
using System.Reflection;

class Program
{
    static void Main()
    {
        // Get the Type object representing PdfDocument
        Type pdfDocumentType = typeof(PdfDocument);
        
        // Display basic information about the PdfDocument type
        Console.WriteLine("Information about the PdfDocument type:");
        Console.WriteLine($"Type Name: {pdfDocumentType.Name}");
        Console.WriteLine($"Full Name: {pdfDocumentType.FullName}");
        Console.WriteLine($"Assembly Qualified Name: {pdfDocumentType.AssemblyQualifiedName}");
        Console.WriteLine("\nMembers:");
        
        // Iterate over all members and display their information
        foreach (var memberInfo in pdfDocumentType.GetMembers())
        {
            Console.WriteLine($"{memberInfo.MemberType} {memberInfo.Name}");
        }
    }
}

提供的 C# 程式碼利用反射從 IronPDF 程式庫中獲取 PdfDocument 型別的資訊。 最初,使用 typeof(PdfDocument) 表達式來檢索表示 PdfDocument 型別的 Type 物件。

隨後,將獲得的 Type 物件的各種屬性列印到控制台,包括型別名稱、全名和程式集限定名稱。

此外,程式碼利用 foreach 迴圈來遍歷 PdfDocument 型別的成員,列印每個成員的資訊,包括成員型別和名稱。

這種方法展示了利用反射在運行時動態檢查 PdfDocument 型別物件的結構和元資料,提供關於其組成和 IronPDF 程式庫 PdfDocument 類的所有公共成員的洞見。

輸出:

C# Reflection (開發者如何運作):圖4

結論

C# 反射是一種強大的機制,使開發者能夠在運行時動態檢查和操控型別的結構。

本文探討了 C# 反射的關鍵概念、運用案例和最佳實踐,強調其在建立靈活和可擴展應用程式中的重要性。

此外,整合了 IronPDF 這個強大的 PDF 處理程式庫,進一步證明了 C# 反射在動態獲得 PdfDocument 型別資訊中的多樣性。

當開發者利用這些功能時,他們獲得了適應其應用程式以符合不斷變化的需求和場景的靈活性,展現 C# 的動態性及像 IronPDF 這樣的程式庫在增強文件處理能力上的寶貴貢獻。

IronPDF 是一個有完善文件和許多教程的程式庫。 要查看教程,請存取 IronPDF 教程文件,這為開發者提供更大的機會了解其功能。

Jacob Mellor,首席技術官 @ Team Iron
首席技術官

Jacob Mellor是Iron Software的首席技術官,一位在C# PDF技術上開創先河的遠見工程師。作為Iron Software核心程式碼庫的原開發者,他從創立以來就一直在塑造公司的產品架構,與首席執行官Cameron Rimington一起將公司轉變為服務於NASA、特斯拉和全球政府公司的50多名人員的公司。

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰。

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

OR
bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
預訂您的免費現場演示
Booking Badge

受到全球數百萬工程師的信任

Iron Software的客戶標誌
獲取您的無義務諮詢
填寫以下表格或電子郵件sales@ironsoftware.com
您的詳細資訊將始終保密。
受到全球數百萬工程師的信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰。
無需信用卡或帳戶建立
C# 用於PDF的NuGet程式庫
使用NuGet安裝

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解決方案資源管理器,右鍵點選參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronPdf"
  3. 選擇套件並安裝
C# PDF DLL
下載DLL

版本: 2026.9

或者點擊此處下載Windows安裝程式。

  1. 下載並解壓IronPDF到類似~/Libs的位置,位於您的解決方案目錄中
  2. 在Visual Studio解決方案資源管理器,右鍵點選參考。選擇瀏覽,"IronPdf.dll"

授權從$999起