Определить типизированный набор данных динамически?

2

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

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

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

  • 0
    Там может быть ряд вопросов, связанных с asp.net. Хорошим первым шагом для локализации проблемы является создание экземпляра из библиотеки, консоли или приложения winforms.
  • 0
    Комментарий - фактически, typeof (TheKnownType) .Assembly.GetType (...) должен делать; нет необходимости создавать экземпляр.
Показать ещё 2 комментария
Теги:
activator
strongly-typed-dataset

2 ответа

3
Лучший ответ

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

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

  • используйте квалифицированное имя сборки ( "somen.amespace.sometype, someassembly,..." )
  • получить экземпляр Assembly (из известного типа в этой сборке) и использовать GetType(fullyQualifiedName) в экземпляре Assembly
  • 0
    Спасибо за предложение! В итоге я создал локальный известный экземпляр, затем вызвал gettype () для этого объекта и использовал его свойства. Указание сборки, казалось, решило эту проблему.
0

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню