Определить типизированный набор данных динамически? - PullRequest
2 голосов
/ 03 июня 2009

Я пытаюсь динамически создать экземпляр типизированного набора данных в моем коде во время выполнения. У меня есть тип, доступный для меня, но когда я пытаюсь сделать это:

object obj = Activator.CreateInstance(Type.GetType("TYPED DATASET TYPE HERE"));

Проблема в том, что тип не соответствует действительности в соответствии с кодом, когда я пытаюсь его запустить. Что я могу здесь делать не так?

Ответы [ 2 ]

3 голосов
/ 03 июня 2009

Где определен тип? (какая сборка).

Если вы не укажете ему полное имя сборки, оно будет выглядеть только в вызывающей сборке и некоторых других ключевых сборках. Опции:

  • использовать полное имя сборки ("somen.amespace.sometype, someassembly, ...")
  • получить экземпляр Assembly (из известного типа в этой сборке) и использовать GetType(fullyQualifiedName) в экземпляре Assembly
0 голосов
/ 03 июня 2009

Если вы используете правильный код набора данных, вам также может понадобиться загрузить сборку.

Просмотрите следующие пространства имен .net Reflection.emit и Reflection.

Вы также можете посмотреть на проекты с открытым исходным кодом, такие как windsor, которые используют отражение для создания новых классов для создания перехватчиков. Там может быть код, который вы можете узнать.

...