evento
17/03, 21 - 21/03, 10
Junte-se à série meetup para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registe-se agoraEste browser já não é suportado.
Atualize para o Microsoft Edge para tirar partido das mais recentes funcionalidades, atualizações de segurança e de suporte técnico.
As classes no System.Reflection namespace, juntamente com System.Type, permitem obter informações sobre assemblies carregados e os tipos definidos neles, como classes, interfaces e tipos de valor (ou seja, estruturas e enumerações). Você também pode usar a reflexão para criar instâncias de tipo em tempo de execução e para invocá-las e acessá-las.
Os assemblies contêm módulos, os módulos contêm tipos e os tipos contêm membros. Reflection fornece objetos que encapsulam assemblies, módulos e tipos. Você pode usar a reflexão para criar dinamicamente uma instância de um tipo, vincular o tipo a um objeto existente ou obter o tipo de um objeto existente. Em seguida, você pode invocar os métodos do tipo ou acessar seus campos e propriedades. Os usos típicos da reflexão incluem o seguinte:
public
ou private
) e detalhes de implementação (como abstract
ou virtual
) de um construtor. Use o GetConstructorsGetConstructor ou método de a Type para invocar um construtor específico.abstract
ou virtual
) de um método. Use o GetMethodsGetMethod ou método de a Type para invocar um método específico.static
) de um campo e para obter ou definir valores de campo.As classes do System.Reflection.Emit namespace fornecem uma forma especializada de reflexão que permite criar tipos em tempo de execução.
O Reflection também pode ser usado para criar navegadores de tipos, que permitem aos usuários selecionar tipos e, em seguida, exibir as informações sobre esses tipos.
Há outros usos para reflexão. Compiladores para linguagens como JScript usam reflexão para construir tabelas de símbolos. As classes no System.Runtime.Serialization namespace usam reflexão para acessar dados e determinar quais campos persistir. As classes no namespace usam reflexão System.Runtime.Remoting indiretamente por meio da serialização.
A reflexão fornece classes, como Type e MethodInfo, para representar tipos, membros, parâmetros e outras entidades de código. No entanto, quando você usa reflexão, você não trabalha diretamente com essas classes, a maioria das quais são abstratas (MustInherit
no Visual Basic). Em vez disso, você trabalha com tipos fornecidos pelo Common Language Runtime (CLR).
Por exemplo, quando você usa o operador C# typeof
(GetType
no Visual Basic) para obter um Type objeto, o objeto é realmente um RuntimeType
arquivo . RuntimeType
deriva e Type fornece implementações de todos os métodos abstratos.
Essas classes de tempo de execução são internal
(Friend
no Visual Basic). Eles não são documentados separadamente de suas classes base, porque seu comportamento é descrito pela documentação da classe base.
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários:
evento
17/03, 21 - 21/03, 10
Junte-se à série meetup para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registe-se agoraFormação
Módulo
Introdução às classes e objetos em C# - Training
Saiba como criar classes e instanciar objetos que expõem dados de campo encapsulados usando definições de classe, construtores e o operador 'novo'.