2010-12-07 4 views
-8

Я пишу формообразователь для нашей CMS, который динамически загружает индивидуальные элементы управления на панели внутри ретранслятора.Динамически добавленные элементы управления завершаются в общем типе?

Пользовательские элементы управления наследуют от, давайте скажем 5arx.FormBuilder.FormControl, базовый класс, который определяет абстрактные методы для инициализации, проверки, повторного заполнения, сбора представленных данных от них. Элементы управления варьируются от простых текстовых полей до сложных составных элементов управления на стороне клиента.

Все работает очень хорошо, но я заметил, что что-то, что я чувствую, является аномальным. Во время написания кода для извлечения элементов формы. собирать их данные и сохранять их в моей базе данных. Я заметил, что их тип возвращается к тому, как объекты набираются, если вы пишете свой код в режиме (v. раздражающий) VS 'проект веб-сайта.

Так, например, элемент управления, который определяется как жить в пространстве имен и быть типа

5arx.FormBuilder.FormControl.MyBespokeControl Sarx.FormBuilder.FormControl.MyBespokeControl

во время выполнения отчетов его тип (с помощью простого вызова чтобы GetType()) как тип:

ASP.5arx_FormBuilder_FormControl_MyBespokeControl ASP.Sarx_FormBuilder_FormControl_MyBespokeControl

Получение свойства BaseType будет корректно извлекать базовый класс, но это вызывает недоумение, почему это должно происходить. В частности, поскольку я потратил большую часть летнего рефакторинга нашего приложения из его первоначальной формы в качестве проекта веб-сайта VS (в комплекте с общим кодом в папке App_Code и другой гадостью) для правильного проекта веб-приложения (IHMO) + поддержки библиотек claass, чтобы мы могли контроль над нашими пространствами имен, а не получить все компилируется в пространстве имен ASP.x :-(

Я бы очень признателен объяснение/ясность

EDIT:. модифицировали (гипотетический) пример корневое пространство имен

+0

@Will - почему вы удалили обмены, последовавшие за этим? Не столько умеренность, сколько цензура. Я прошу, чтобы содержимое было восстановлено. – 5arx 2010-12-08 13:55:09

+0

@MichaelPetrotta - вы взяли много хлопот, чтобы кастрировать этот вопрос, но не сделали акциз оскорбительного предложения. > Предположим, что «5arx. – 5arx 2010-12-08 16:24:07

ответ

2

. По-видимому, это позволяет обновлять и перекомпилировать файлы ASPX независимо от вашего кода. В основном действительный Управление/тип страницы происходит от типа, который вы пишете в коде.

См. this article (с 2006 года, но по-прежнему актуально :) для получения более подробной информации.

Я не могу сказать, что я много знаю об ASP.NET, но, основываясь на статье, похоже, что это не зависит от того, является ли проект «веб-сайтом». Я предполагаю, что каждый раз, когда у вас есть файл формата шаблона (aspx, ascx и т. Д.), Компилятор времени выполнения ASP.NET сделает все это за вас.

Будет ли это, если вы прекомпилируете сайт, я не знаю.

Смежные вопросы