Динамически определить типизированный набор данных?
-
06-09-2019 - |
Вопрос
Я пытаюсь динамически создать экземпляр типизированного набора данных в своем коде во время выполнения.У меня есть доступный мне тип, но когда я пытаюсь это сделать:
object obj = Activator.CreateInstance(Type.GetType("TYPED DATASET TYPE HERE"));
Проблема в том, что тип не соответствует коду, когда я пытаюсь его запустить.Что я могу здесь делать не так?
Решение
Где определяется тип?(какая сборка).
Если вы не дадите ему полное имя сборки, он будет просматривать только звоню сборка и несколько других ключевых сборок.Параметры:
- используйте полное имя сборки («somen.amespace.sometype, someassembly, ...»)
- получить
Assembly
экземпляр (из известного типа в этой сборке) и используйтеGetType(fullyQualifiedName)
наAssembly
пример
Другие советы
Предполагая, что вы передаете правильный код набора данных, вам также может потребоваться загрузить сборку.
Посмотрите на следующие пространства имен .net: Reflection.emit и Reflection.
Вы также можете посмотреть на проекты с открытым исходным кодом, такие как Windsor, которые используют отражение для создания новых классов для создания перехватчиков.Там может быть код, на котором вы можете учиться.