Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top