ASP.NET и GetType ()

Вы используете filepath в качестве аргумента для инструмента shp2pgsql, который вы пытаетесь запустить в отдельном процессе. Ошибка происходит из-за того, что shp2pgsql не найдено.

6
задан Adam Driscoll 14 October 2008 в 17:26
поделиться

4 ответа

Если Ваш код - около похож на это:

public partial class _Login : BasePage 
 { /* ... */ 
 }

Затем Вы добрались бы Type объект для него с typeof(_Login). Для получения типа динамично можно найти его рекурсивно:

Type GetCodeBehindType()
 { return getCodeBehindTypeRecursive(this.GetType());
 }

Type getCodeBehindTypeRecursive(Type t)
 { var baseType = t.BaseType;
   if (baseType == typeof(BasePage)) return t;
   else return getCodeBehindTypeRecursive(baseType);
 }
6
ответ дан 10 December 2019 в 00:46
поделиться

После некоторого дополнительного исследования я нашел это, если я звоню Page. GetType ().BaseType это возвращает код - позади типа страницы Aspx.

3
ответ дан 10 December 2019 в 00:46
поделиться

Это зависит, откуда Вы называете Дисплей (). Если Вы называете его от ASPX, то you'llse "ASP_login.aspx". При вызове его из кода - позади (т.е. Page_Load () метод), необходимо получить тип Страницы входа в систему.

Вместо того, чтобы передать Страницу в, Вы могли бы рассмотреть просто использование свойства Page (т.е. это. Страница. GetType ()), который должен всегда быть текущим типом page/codebehind, если я вспоминаю правильно.

Я должен также высказать мнение, что Вы могли бы рассмотреть перемещение этого вида материала из ASPX/codebehind и на своего рода службу. Это обычно - хорошая идея минимизировать сумму вещей, которые Вы делаете в коде позади и, вместо этого, продвигаете логику в класс предъявителя и следуете за шаблоном MVP для разработки Веб-форм ASP.NET.

0
ответ дан 10 December 2019 в 00:46
поделиться

страница. GetType ().BaseType, это было сказано прежде, но позволило мне уточнить относительно почему.

Страницы Aspx наследовались своему коду - позади страниц, означая, что иерархия наследования похожа на это:

...
Page
BasePage
Login
ASP_Login

Где вершина является родителем, и нижняя часть является ребенком.

Это позволяет Вашему коду позади быть доступным от aspx страницы, не требуя, чтобы весь сгенерированный код, связанный с Вашей фактической aspx страницей, был скопирован в страницу базового класса.

1
ответ дан 10 December 2019 в 00:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: