IRONSOFTWAREHOME
開発者向けアップデート

C# Reflection(開発者向けの動作方法)

Jacob Mellor、Ironチームの最高技術責任者(CTO)
Jacob Mellor
Updated: 2026年4月23日

ソフトウェア開発の世界では、C#は柔軟で強力なプログラミング言語であり、開発者に幅広い機能を提供します。

その中でも、柔軟性と動的性に優れた特徴として際立っているのがリフレクションです。 C#のリフレクションは、実行時に開発者がタイプのメタデータを調査および操作することを可能にします。この能力は新たな次元の可能性を広げ、開発者がより柔軟で拡張性のある強固なアプリケーションを作成することを可能にします。

この記事では、C#リフレクションの複雑さを掘り下げ、その主要な概念、使用例、ベストプラクティスを探っていきます。 IronPDFのPdfDocumentオブジェクトのリフレクション情報も見つけます。

Reflection in C#

リフレクションはプログラムが実行時にその構造と動作を調べたり操作したりすることを可能にするメカニズムです。C#では、メタデータとやり取りしたり、タイプに関する情報を取得したり、動的にインスタンスを作成したりするためのクラスとメソッドを提供するSystem.Reflection名前空間を通じてこれを実現します。

リフレクションの主要コンポーネント

Typeクラス

C#のリフレクションの核心には、.NETランタイム内の型を表すTypeクラスがあります。このクラスは、すべてのパブリックメソッド、プロパティ、フィールド、イベント、メソッドパラメーターに関する豊富な情報を提供します。

typeof()演算子を使用するか、オブジェクトのGetType()メソッドを呼び出すことで、特定のタイプのTypeオブジェクトを取得できます。

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におけるアセンブリは、デプロイメントとバージョニングの単位です。 System.Reflection名前空間の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 - Official Websiteは、.NETアプリケーションでPDFドキュメントを操作するための包括的な機能を提供する強力なC#ライブラリです。 開発者は簡単で直感的なAPIを使用してPDFファイルのような既存のオブジェクトを簡単に作成、操作、及びデータの抽出ができます。

IronPDFの注目すべき機能の一つは既存のC#プロジェクトにシームレスに統合できることで、PDFの生成と操作機能を追加するための優れた選択肢となっています。

IronPDFの主な機能

IronPDFの主な機能を以下に示します:

  1. **PDF生成:**ゼロからPDFドキュメントを簡単に生成したり、HTML、画像、その他の形式をPDFに変換。
  2. **PDF操作:**テキスト、画像、注釈の追加、削除、変更によって既存のPDFを編集。
  3. **PDF抽出:**PDFファイルからテキスト、画像、メタデータを抽出し、さらに処理。
  4. **HTMLからPDFへの変換:**CSSやJavaScriptを含むHTMLコンテンツを高品質なPDFに変換。
  5. **PDFフォーム:**インタラクティブなPDFフォームをプログラムによって作成・入力。
  6. **セキュリティ:**PDFドキュメントを暗号化し、パスワード保護を適用して安全に保護。

次に、詳しいコード例でIronPDFとC#リフレクションの使用方法を探ります。

IronPDFでC#リフレクションを使用する

この簡単な例では、C#リフレクションを使用してIronPDF PDFドキュメントオブジェクトに関する情報を取得します。

IronPDF NuGetパッケージをインストールする

プロジェクトにIronPDF NuGetパッケージをインストールしてください。 これをNuGetパッケージマネージャーコンソールを使用して行うことができます:

PM > Install-Package IronPdf

IronPDF PDFドキュメントオブジェクトのデータを取得するためにC#リフレクションを使用する

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 オブジェクトのさまざまなプロパティ、例えば型名、完全な名前、アセンブリ修飾名などをコンソールに出力します。

さらに、このコードは PdfDocument 型のメンバーを反復処理するために foreach ループを使用し、各メンバーに関する情報、例えばメンバーの型や名前を出力します。

このアプローチは、実行時にPdfDocumentタイプのオブジェクトの構造やメタデータを動的に調べるためにリフレクションを使用し、IronPDFライブラリのPdfDocumentクラスの構成およびすべての公開メンバーに関する洞察を提供します。

出力:

C# Reflection(開発者への動作説明):図4

結論

C#のリフレクションは、実行時にタイプの構造を動的に調査および操作する力を開発者に与える強力なメカニズムです。

この記事では、C#リフレクションに関連する重要な概念、使用例、ベストプラクティスを探り、柔軟で拡張可能なアプリケーションを作成する上での重要性が強調されました。

さらに、IronPDFという強力なPDF操作ライブラリの統合により、PdfDocumentタイプについて動的に情報を取得する際のC#リフレクションの多様性がより示されます。

これらの機能を活用することで、開発者は変化する要件や状況にアプリケーションを適応させる柔軟性を得ることができ、C#の動的な性質やIronPDFのようなライブラリがドキュメント処理能力を強化するための貴重な貢献をしていることを示しています。

IronPDFは多くのチュートリアルがある十分に文書化されたライブラリです。 チュートリアルを見るには、IronPDFチュートリアルドキュメントを訪問し、その機能について学ぶためのより多くの機会を開発者に提供します。

Jacob Mellor、Ironチームの最高技術責任者(CTO)
最高技術責任者(CTO)

ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。

関連する記事

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

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# 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から