Linha de estruturas de simulação NMock (para gerar classes simuladas em cenários de teste de unidade) faça isso.
Outro aplicativo em que posso pensar pode ser uma ferramenta de banco de dados genérica gerando classes em tempo de execução para cada tabela no banco de dados (é claro, pode haver soluções melhores para essa finalidade).
Em C #, sempre que você tiver a obrigação de construir uma função em tempo de execução (porque, por exemplo, o usuário pode inserir uma função definida por ele mesmo em sua aplicação), você precisará de uma classe dinâmica para essa finalidade. desde em funções C # não pode viver "por conta própria".
E outro aplicativo que conheço são os wrappers COM criados dinamicamente no C # 4.0 para cada componente COM. Até C # 3.5, você precisava primeiro gerar algum wrapper de biblioteca de tipos que precisava ser compilado antes de poder usá-lo. Com o C # 4.0 e a palavra-chave dynamic
, isso não é mais necessário, o wrapper pode ser construído em tempo de execução pelo framework e você pode escrever código que chama métodos dessas classes.