Anda di halaman 1dari 17

.NET – POO – C# .

NET
• Objetivo
• Visão Geral 

• Utilizando a Classe Assembly


• Classe AssemblyInfo

• 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:

 Abaixo definimos o nome da empresa:


[assembly: AssemblyCompany("Faesa, Inc")]

 Abaixo definimos os direitos de cópia:


[assembly: AssemblyCopyright("Todos os direitos reservados")]
 O desenvolvedor pode buscar o tipo do objeto de várias

formas tomando seu acesso pelo uso da classe Type:


▪ Classe Assembly;

▪ Classe Module;

▪ Instância de uma classe;

▪ Usando a palavra-chave typeof no C# ou função

GetType no Visual Basic .NET.


 Exemplificando o uso da classe Type, temos:
▪ A partir da instância de um objeto:

Pessoa p = new Pessoa();

Type pType = p.GetType();

▪ Utilizando a palavra-chave typeof:

Type pType= typeof(Pessoa)


 Como obter os dados de uma classe?

Type t = typeof(String);

Console.WriteLine("Type: {0}", t.Name);


Console.WriteLine("Namespace: {0}", t.Namespace);
Console.WriteLine("FullName: {0}", t.FullName);
Console.WriteLine("Is Class?: {0}", t.IsClass);
 Como obter as informações de campos, método e
propriedades de uma classe?

Type t = typeof(String);

foreach (MemberInfo m in t.GetMembers()) {


Console.WriteLine("{0}: {1}", m.MemberType, m.Name);
}
Informações de Informações de Informações de
Método Propriedade Campo
 O namespace System.Reflection inclui classes para
interrogar os metadados sobre os assemblies, módulos e
tipos no CLR;
 Um número de atributos específicos do assembly podem ser
usados para especificar informação sobre um assembly,
assim como os dados de copyright, versão e marca
registrada;
 Um número de classes que são usadas para obter
informação derivam da classe MemberInfo, isso inclui
PropertyInfo, MethodInfo e FieldInfo.
.NET – POO – C# .NET

Anda mungkin juga menyukai