NET
• Objetivo
• Visão Geral
• Classe Type
• Classe MemberInfo
• Conclusão
Capacitar o aluno no uso dos principais recursos da API
Reflection oferecidos pela plataforma .NET.
Um dos maiores benefícios do .NET Framework é a
riqueza de informação do tipo, disponível em tempo de
execução;
O sistema de reflexão possibilita ao desenvolvedor navegar
e questionar este tipo de informação;
Este recurso permite criar sistemas muito dinâmicos e
arquiteturas de aplicações mais plugáveis.
O namespace empregado é System.Reflection.
Vamos compreender um pouco mais sobre os Assemblies e
Modules:
▪ Um assembly é um container lógico com diferentes partes
dos dados de CLR necessário para executar o código:
▪ Metadados de Assembly;
▪ Metadados de Tipo;
▪ Código (Microsoft Intermediate Language Code);
▪ Recursos.
Organização de um Assembly:
Como obter informações sobre o assembly que está
sendo executado atualmente:
Assembly a = Assembly.GetExecutingAssembly();
Console.WriteLine("Full Name: {0}", a.FullName);
Console.WriteLine("Location: {0}", a.Location);
Console.WriteLine("Only Reflection? {0}", a.ReflectionOnly);
Como obter informações sobre os módulos que
compõem o assembly:
Assembly a = Assembly.GetExecutingAssembly();
Module[] modules = a.GetModules();
foreach (Module m in modules)
{
Console.WriteLine("Module Name: {0}", m.Name);
}
Há vários atributos sobre um assembly que não estão
disponíveis para leitura. Estes atributos incluem:
▪ Informações de direito de cópia;
▪ Informações sobre o fornecedor;
▪ A cultura;
▪ Arquivo de chave.
Podemos definir no arquivo AssemblyInfo.cs de seu projeto
alguns atributos em tempo de design:
▪ Classe Module;
Type t = typeof(String);
Type t = typeof(String);