IRONSOFTWAREHOME
ATUALIZAÇÕES DO DESENVOLVEDOR

Reflexão em C# (Como funciona para desenvolvedores)

Curtis Chau
Curtis Chau
Updated: 23 de abril de 2026

No mundo do desenvolvimento de software, C# é uma linguagem de programação versátil e poderosa que oferece uma ampla gama de recursos aos desenvolvedores.

Uma dessas características que se destaca pela sua flexibilidade e dinamismo é a reflexão. A reflexão em C# permite que os desenvolvedores inspecionem e interajam com os metadados dos tipos durante a execução. Essa capacidade abre uma nova dimensão de possibilidades, permitindo que os desenvolvedores criem aplicativos mais flexíveis, extensíveis e robustos.

Neste artigo, vamos explorar as complexidades da reflexão em C#, analisando seus principais conceitos, casos de uso e melhores práticas. Também encontraremos as informações de reflexão do objeto PdfDocument do IronPDF .

Reflection in C#

A reflexão é um mecanismo que permite a um programa examinar e manipular sua estrutura e comportamento em tempo de execução. Em C#, isso é feito por meio do namespace System.Reflection , que fornece classes e métodos para interagir com metadados, obter informações sobre tipos e até mesmo criar instâncias dinamicamente.

Componentes-chave da reflexão

Classe de tipo

No núcleo da reflexão em C# está a classe Type , que representa um tipo no ambiente de execução do .NET . Essa classe fornece uma grande quantidade de informações sobre um tipo, incluindo todos os métodos públicos, propriedades, campos, eventos e parâmetros de métodos.

Você pode obter um objeto Type para um determinado tipo usando vários métodos, como o operador typeof() ou chamando o método GetType() em um objeto.

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

Saída

Reflection do C# (Como Funciona Para Desenvolvedores): Figura 1

Classe de Montagem

Em .NET, um assembly é uma unidade de implantação e versionamento. A classe Assembly no namespace System.Reflection fornece métodos para carregar e descrever assemblies e inspecionar informações de assembly dinamicamente.

Você pode obter um objeto Assembly para qualquer instância do assembly em execução ou para qualquer assembly referenciado.

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

Saída

Reflection do C# (Como Funciona Para Desenvolvedores): Figura 2

Classes MethodInfo, PropertyInfo, FieldInfo e EventInfo

Essas classes representam membros públicos, métodos, propriedades, campos e eventos, respectivamente. Elas expõem informações sobre esses membros, como seus nomes, tipos, acessibilidade e muito mais.

Você pode obter acesso a instâncias dessas classes através da classe 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}");
    }
}

Saída

Reflection do C# (Como Funciona Para Desenvolvedores): Figura 3

Apresentando o IronPDF

IronPDF - Site Oficial é uma poderosa biblioteca C# que fornece um conjunto abrangente de recursos para trabalhar com documentos PDF em aplicativos .NET . Permite que os desenvolvedores criem, manipulem e extraiam dados de um objeto existente, como arquivos PDF, com facilidade, usando uma API simples e intuitiva.

Uma característica notável do IronPDF é sua capacidade de se integrar perfeitamente a projetos C# existentes, tornando-o uma excelente opção para adicionar recursos de geração e manipulação de PDFs.

Principais características do IronPDF

Algumas das principais características do IronPDF são as seguintes:

  1. Geração de PDF: Crie facilmente documentos PDF do zero ou converta HTML, imagens e outros formatos em PDF.
  2. Manipulação de PDF: Edite PDFs existentes adicionando, removendo ou modificando texto, imagens e anotações.
  3. Extração de PDF: Extrai texto, imagens e metadados de arquivos PDF para processamento posterior.
  4. Conversão de HTML para PDF: Converta conteúdo HTML, incluindo CSS e JavaScript, em PDFs de alta qualidade.
  5. Formulários PDF: Crie e preencha formulários PDF interativos programaticamente.
  6. Segurança: Aplique criptografia e proteção por senha para proteger documentos PDF.

Agora, vamos explorar como usar a reflexão em C# com o IronPDF em um exemplo de código detalhado.

Usando Reflexão C# com IronPDF

Neste exemplo simples, obteremos informações sobre o objeto de documento PDF do IronPDF usando reflexão em C#.

Instale o pacote NuGet IronPDF.

Certifique-se de instalar o pacote NuGet IronPDF em seu projeto. Você pode fazer isso usando o Console do Gerenciador de Pacotes NuGet :

PM > Install-Package IronPdf

Usando Reflexão C# para obter dados do Objeto Documento PDF do IronPDF

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

O código C# fornecido utiliza reflexão para obter informações sobre o tipo PdfDocument da biblioteca IronPDF . Inicialmente, a expressão typeof(PdfDocument) é usada para recuperar o objeto Type que representa o tipo PdfDocument.

Subsequentemente, várias propriedades do objeto Type obtido são impressas no console, incluindo o nome do tipo, nome completo e nome qualificado do assembly.

Além disso, o código utiliza um loop foreach para iterar pelos membros do tipo PdfDocument, imprimindo informações sobre cada membro, como o tipo de membro e nome.

Esta abordagem demonstra o uso de reflexão para inspecionar dinamicamente a estrutura e os metadados de objetos do tipo PdfDocument durante a execução, fornecendo informações sobre a composição e todos os membros públicos da classe PdfDocument da biblioteca IronPDF .

Saída:

Reflection do C# (Como Funciona Para Desenvolvedores): Figura 4

Conclusão

A reflexão em C# é um mecanismo poderoso que permite aos desenvolvedores inspecionar e manipular dinamicamente a estrutura dos tipos em tempo de execução.

Este artigo explorou conceitos-chave, casos de uso e melhores práticas associados à reflexão em C#, destacando sua importância na criação de aplicações flexíveis e extensíveis.

Além disso, a integração do IronPDF, uma biblioteca robusta para manipulação de PDFs, demonstra ainda mais a versatilidade da reflexão em C# na obtenção dinâmica de informações sobre o tipo PdfDocument .

Ao aproveitarem esses recursos, os desenvolvedores ganham a flexibilidade de adaptar seus aplicativos às mudanças de requisitos e cenários, demonstrando a natureza dinâmica do C# e as valiosas contribuições de bibliotecas como o IronPDF para aprimorar os recursos de processamento de documentos.

IronPDF é uma biblioteca bem documentada com muitos tutoriais. Para ver os tutoriais, visite a Documentação de Tutoriais do IronPDF , que oferece uma oportunidade maior para os desenvolvedores aprenderem sobre seus recursos.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.