Recursos especiais neste artigo:
Conteúdo sobre boas práticas, Artigo no estilo Mentoring
A classe ExpandoObject permite a criação de objetos dinâmicos, adicionando e removendo membros em tempo de execução e neste artigo veremos melhor este recurso e seus benefícios para utilização em nossos projetos. Em conjunto com o suporte dinâmico do framework esta classe é útil para tornar códigos mais legíveis e flexíveis. O seu dinamismo permite a transformação de dados em objetos, facilitando a exibição e controle dos dados.
Em
que situação o tema é útil
A criação de objetos com estrutura dinâmica usando a classe ExpandoObejct
é útil em situações onde se tem um conjunto de informações que podem ser
agrupadas, mas que não levam à necessidade de criação de uma classe para organizá-las.
Para estes casos, pode-se criar um objeto único, instância da classe
ExpandoObject, e adicionar propriedades e métodos dinamicamente.
A maioria dos códigos escritos em .NET são baseados em tipos estáticos. A tipagem estática oferece um ótimo desempenho, mas é baseada no pressuposto que você sabe quase tudo sobre o seu código (e dados) com antecedência. Hoje em dia com os novos recursos disponíveis, há uma forte tendência a desenvolver códigos genéricos contendo tipagem dinâmica, objetos dinâmicos e programação com a utilização de Reflection (BOX 1).
Nesse artigo será mostrado uma das várias opções que o framework disponibiliza, a classe ExpandoObject, que auxilia o desenvolvimento de aplicações com códigos mais flexíveis.
Reflection é um modo pelo qual o programa pode ler as suas próprias informações em tempo de execução. Ou seja, uma forma de obter os métodos, propriedades de um tipo específico e então invocá-los dinamicamente.