IRONSOFTWAREHOME
AKTUALNOŚCI DLA PROGRAMISTÓW

Refleksja w języku C# (jak działa dla programistów)

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Jacob Mellor
Updated: 23 kwietnia 2026

W świecie rozwoju oprogramowania, C# to wszechstronny i potezny język programowania, ktory dostarcza szeroki zakres funkcji dla deweloperow.

Jedna z takich funkcji, która wyróżnią sie elastycznoscia i dynamizmem, jest refleksja. Refleksja w C# pozwala deweloperom na przeglądanie i interakcje z metadanymi typow w czasie wykonywania. Ta zdolnosc otwiera nowy wymiar możliwości, umożliwiajac tworzenie bardziej elastycznych, rozszerzalnych i solidnych aplikacji.

W tym artykułe zaglebimy sie w zawiłosci refleksji w C#, badajac jej kluczowe pojecia, przypadki użycia i najlepsze praktyki. Znajdziemy również informacje związane z refleksja obiektu PdfDocument z IronPDF.

Reflection in C#

Refleksja jest mechanizmem, ktory pozwala programowi na badanie i manipulowanie swoja struktura i zachowaniem w czasie wykonywania. W C# jest to osiagane poprzez przestrzen nazw System.Reflection, która dostarcza klasy i metody do interakcji z metadanymi, uzyskiwania informacji o typach, a nawet dynamicznego tworzenia instancji.

Kluczowe elementy refleksji

Klasa Type

W samym centrum refleksji w C# znajduje sie klasa Type, która reprezentuje typ w środowisku .NET. Ta klasa dostarcza bogatej informacji o typie, w tym wszystkich publicznych metodach, właściwościach, polach, zdarzeniach i parametrach metod.

Możesz uzyskać obiekt Type dla danego typu, korzystając z różnych metod, takich jak operator typeof() lub wywołując metode GetType() na obiekcie.

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}");
    }
}

Wynik

C# Reflection (Jak to działa dla programisty): Rysunek 1

Klasa Assembly

Zgromadzenie w .NET to jednostka wdrozeniowa i wersjonowania. Klasa Assembly w przestrzeni nazw System.Reflection dostarcza metody do ladowania i opisywania zgromadzen oraz dynamicznego przeglądania informacji o zgromadzeniu.

Możesz uzyskać obiekt Assembly dla dowolnej instancji aktualnie wykonywanego zgromadzenia lub dla kazdego odniesionego zgromadzenia.

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));
    }
}

Wynik

C# Reflection (Jak to działa dla programisty): Rysunek 2

Klasy MethodInfo, PropertyInfo, FieldInfo i EventInfo

Te klasy reprezentuja publiczne czlonki, metody, właściwości, pola i zdarzenia, odpowiednio. Ujawniaja informacje o tych czlonkach, takie jak ich nazwy, typy, dostępność i więcej.

Możesz uzyskać dostep do instancji tych klas poprzez klase 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}");
    }
}

Wynik

C# Reflection (Jak to działa dla programisty): Rysunek 3

Przedstawiamy IronPDF

IronPDF - Oficjalna Strona Internetowa to potezna biblioteka C#, która dostarcza wszechstronny zestaw funkcji do pracy z dokumentami PDF w aplikacjach .NET. Pozwala deweloperom łatwo tworzyć, manipulowac i wyodrebniac dane z istniejącego obiektu, takiego jak pliki PDF, przy użyciu prostego i intuicyjnego API.

Jedna z wyróżniąjacych sie funkcji IronPDF jest jego zdolnosc do bezproblemowej integracji z istniejącymi projektami C#, co czyni go doskonalym wyborem do dodania funkcji generowania i manipulowania dokumentami PDF.

Najważniejsze cechy IronPDF

Niektore kluczowe funkcje IronPDF sa następujące:

  1. Generowanie PDF: Latwe generowanie dokumentów PDF od podstaw lub konwertowanie HTML, obrazów i innych formatow na PDF.
  2. Manipulacja PDF: Edytowanie istniejących PDF poprzez dodawanie, usuwanie lub modyfikowanie tekstu, obrazów i adnotacji.
  3. Wyodrebnianie PDF: Wyodrebnianie tekstu, obrazów i metadanych z plików PDF do dalszego przetwarzania.
  4. Konwersja HTML do PDF: Konwertowanie zawartości HTML, w tym CSS i JavaScript, na wysokiej jakosci PDF.
  5. Formularze PDF: Tworzenie i wypelnianie interaktywnych formularzy PDF programowo.
  6. Bezpieczenstwo: Zastosowanie szyfrowania i ochrony haslem w celu zabezpieczenia dokumentów PDF.

Teraz zbadamy, jak uzyc refleksji C# z IronPDF w szczegółowym przykładzie kodu.

Użycie refleksji C# z IronPDF

W tym prostym przykładzie uzyskamy informacje o obiekcie dokumentu PDF IronPDF przy użyciu refleksji C#.

Zainstaluj pakiet IronPDF NuGet

Upewnij sie, ze zainstalowales paczke NuGet IronPDF w swoim projekcie. Można to zrobić za pomocą konsoli NuGet Package Manager Console:

PM > Install-Package IronPdf

Użycie C# Reflection do uzyskania danych obiektu IronPDF PDF Document

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}");
        }
    }
}

Dostarczony kod C# wykorzystuje refleksje do uzyskania informacji o typie PdfDocument z biblioteki IronPDF. Początkowo, wyrażenie typeof(PdfDocument) jest używane do pobrania obiektu Type reprezentującego typ PdfDocument.

Następnie różne właściwości uzyskanego obiektu Type są wyświetlane na konsoli, w tym nazwa typu, pełna nazwa i nazwa kwalifikowana przez zestaw.

Dodatkowo, kod wykorzystuje pętlę foreach do iteracji przez członków typu PdfDocument, wyświetlając informacje o każdym członku, takie jak jego typ i nazwa.

To podejście demonstruje użycie refleksji do dynamicznego badania struktury i metadanych obiektow typu PdfDocument w czasie wykonywania, dostarczając wgladu w sklad i wszystkie publiczne czlonki klasy PdfDocument biblioteki IronPDF.

Wynik:

C# Reflection (Jak to działa dla programisty): Rysunek 4

Wnioski

Refleksja w C# to potezny mechanizm, ktory umożliwia deweloperom dynamiczne badanie i manipulowanie struktura typow w czasie wykonywania.

W tym artykułe omowiono kluczowe pojecia, przypadki użycia i najlepsze praktyki związane z refleksja w C#, podkreślajac jej znaczenie w tworzeniu elastycznych i rozszerzalnych aplikacji.

Dodatkowo, integracja IronPDF, solidnej biblioteki manipulacji PDF, dodatkowo demonstruje wszechstronnosc refleksji C# w uzyskiwaniu informacji o typie PdfDocument dynamicznie.

Deweloperzy, wykorzystujac te możliwości, zyskuja elastycznosc pozwalająca dostosować swoje aplikacje do zmieniajacych sie wymagań i scenariuszy, pokazujac dynamiczna nature C# i wartosc dodana takich bibliotek jak IronPDF w podnoszeniu możliwości przetwarzania dokumentów.

IronPDF to dobrze udokumentowana biblioteka z wieloma samouczkami. Aby zobaczyć samouczki, odwiedz Dokumentacja Samouczkow IronPDF, co daje deweloperom wieksza możliwość nauki o jej funkcjach.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczącą ponad 50 osób, obsługującą NASA, Teslę i światowe agencje rządowe.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta