Создание экземпляра из имени класса - PullRequest
2 голосов
/ 07 октября 2008

Я пытаюсь создать экземпляр класса во время выполнения. Все классы, которые я пытаюсь создать, наследуются от базового класса ConfigMgrObj и имеют имя ConfigMgr_xxxxxx, например. ConfigMgr_Collection. Все они принимают специальный объект, который я называю oController, и строку в качестве аргументов.

Это строка, которую я использую для этого, где ClassToGet - строка, содержащая имя класса, например. ConfigMgr_Collection.

object oNewObject = System.Activator.CreateInstance(null, "StackOverflowNamespace." + ClassToGet, new object[] { oController, ClassToGet });

Это вызывает исключение TypeLoadException. Что с этим?

Ответы [ 2 ]

6 голосов
/ 07 октября 2008

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

0 голосов
/ 07 октября 2008

Похоже, он не нашел класс с именем "StackOverflowNamespace."+ClassToGet в текущей сборке.

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