Старейшина
Зарегистрирован: 29 September 2002
Сообщения: 647
Примеры кода: 2
|
RE: MSVS 2005 Beta 1: Использование UserControl в классах |
09 March 2005 16:59 |
|
|
|
|
В моём проекте мне надо использовать UserControl-ы в классах.
Пример по шагам:
0. Я написал класс MyClass и положил его в каталог "Code".
В это классе есть такой метод:
public void DoSomething (Page page)
{
MyUserControl my_control = page.FindControl ("MyuserControlId") as MyUserControl;
...
}
1. На aspx странице я поместил свой контрол MyUserControl (файлы этого контрола размещены там же, где и страница — т.е. в обыном каталоге, не в Code)
2. В обработке OnLoad страницы я хочу выполнить следующее:
MyClass my_class = new MyClass ();
my_class.DoSomething (this.Page);
Так вот, при компиляции получаю ошибку в методе DoSomething класса MyClass на счёт того, что класс MyUserControl не может быть найден.
Как мне обойти эту проблему?
Или, может быть, мне кто-нибудь подскажет альтернативный подход работы с UserControl-ми в кодовых классах?
В новом ASP.NET применена новая моедль компиляции. Теперь по дефолту сайт не прекомпилится. А каждая форма компилится по мере запроса к ней.
А если у тебя есть папка Code, которая перед запуском все же компилится как-то, то она требует наличия всех классов в своем контексте даже вов время компиляции. А ежели все aspx и ascx будут компилится по запросу, то на момонт компиляции твоего класса классов контрола под руками просто нет.
Выдержки из соответствующего треда на www.asp.net:
The web project model is changed in Whidbey. The web pages' assemblies are not built into \Bin any more. Asp.net supports dynamic compilation. It builds the page assembly out when you request the page. It puts those temporary assemblies in "Temporary ASP.NET files" subfolder in framework directory and you can check them out.
In Whidbey, "\bin" will mainly be used as a approach to add some project references such as to your own managed assembly or COM components . You can just create "bin" folder, add any managed dll into it and in your web pages you can reference it
In the higher level versions of Visual Studio 2005 (Professional) there is an option to precompile the Web site into .dll's as before -- this is not a feature of Visual Web Develoepr 2005 Express Edition ...
So now we support 2 models:
1) Dynamic Compilation as described in this post
2) Pre-Compiliation as before, but tools support only in the up-level products -- this is a pro feature. We take I.T. easy!
|
|