Definir um dataset tipado dinamicamente?
-
06-09-2019 - |
Pergunta
Eu estou tentando criar uma instância de um dataset tipado dinamicamente no meu código em tempo de execução. Eu tenho o tipo disponível para mim, mas quando eu tento fazer isso:
object obj = Activator.CreateInstance(Type.GetType("TYPED DATASET TYPE HERE"));
O problema é do tipo não parece estar de acordo válido com o código quando tento executá-lo. O que eu poderia estar fazendo de errado aqui?
Solução
Onde está o tipo definido? (Que montagem).
A menos que você dê a ele um nome de assembly qualificado, ele só olhar nos chamando de montagem, e alguns outros conjuntos chave. Opções:
- usar um nome de assembly qualificado ( "somen.amespace.sometype, someassembly, ...")
- obter a instância
Assembly
(de um tipo conhecido em que a montagem), e usoGetType(fullyQualifiedName)
na instânciaAssembly
Outras dicas
Assumindo que você está emitindo o código de conjunto de dados correto, você também pode precisar de carregar o assembly.
Olhe para o seguinte .net namespaces Reflection.Emit, e reflexão.
Você também pode olhar para os projetos de código aberto, como Windsor, que utilizam reflexão para emitir novas classes para criar interceptores. Pode haver código lá que você pode aprender.