Получение типа из новых классов, скопированных во время выполнения, возвращает нуль - PullRequest
0 голосов
/ 21 июня 2010

При нажатии кнопки мое веб-приложение копирует несколько классов в проект, а затем проверяет, содержат ли новые файлы класс с именем my.namespace.myclass с Type.GetType ("my.namespace.myclass", false, true) ; Это возвращает ноль, даже если я вижу класс с правильным пространством имен, и если я напишу my.namespace.myclass в моем коде (после обновления файлов внутри VS), класс можно использовать. Если я снова нажму ту же кнопку, тип будет найден; Я предполагаю, что класс не был скомпилирован раньше, но сейчас.

Есть ли способ принудительно скомпилировать файлы перед попыткой получить тип? Я попытался перезапустить приложение asp.net программно, но тип все еще нулевой.

Любая помощь приветствуется

Ответы [ 2 ]

0 голосов
/ 18 октября 2010

Когда вы перетаскиваете файлы в App_Code, они компилируются в отдельную сборку и вызывают перекомпиляцию вашего веб-приложения. Проблема в том, что если вы копируете их в App_Code, вы не увидите, когда будете делать Type.GetType (...), потому что ваша текущая версия App_Code (скомпилированная версия, запущенная в данный момент) не содержать их. Я бы порекомендовал попробовать доставить их отдельным способом. App_Code - это специальный механизм в ASP.NET, я бы не стал полагаться на это для практических приложений. Я бы предпочел, чтобы классы были скомпилированы и помещены в другую папку, где я могу загрузить их в домен приложений и отразить, где мне нужно.

0 голосов
/ 18 октября 2010

Я не уверен, правильно ли я понимаю ваш вопрос. Что я понимаю, так это то, что вы хотите загрузить текстовый файл (файл .cs - это, в основном, текстовые файлы) и использовать рефлекс на код внутри него.

Если я вас правильно понял, вам нужно выполнить компиляцию во время выполнения. Это не так уж сложно, но все еще нужно сделать. Вы можете использовать инструкции здесь для этого.

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