asp.net MVP的对象创建机制
编辑器加载中... 最近刚接手一个新的项目,使用到 asp.net MVP 利用WCSF客户端软件工厂产生的项目工程。
在园中找到了一些关于MVP框架的介绍文章;
- http://www.cnblogs.com/Terrylee/archive/2008/01/01/aspnet-mvc-framework-vs-wcsf-mvp.html
- http://www.cnblogs.com/terrylee/archive/2007/11/28/web-client-software-factory-databinding-objectcontainserdatasource.html 这里总共有四篇文章介绍MVP框架详解
- http://www.cnblogs.com/terrylee/archive/2008/02/29/web-client-software-factory-v2-released-for-visual-studio-2008.html
这次主要记录下疑惑比较大的问题,就是在页面aspx.cs 文件和ascx.cs文件中出现的 Presenter类创建过程,是怎么自动创建的?
[CreateNew]
public ProductListPresenter Presenter
{
set
{
this._presenter = value;
this._presenter.View = this;
}
}
主要是被标记 [CreateNew] 被标记后。通过企业库中 Microsoft.Practices.ObjectBuilder 提供的依赖注入方式创建对象,而在MVP框架中每个页面的 Presenter 对象 能通过标记[CreateNew]创建,主要的原因就是 每个页面都继承了 企业库中的 Microsoft.Practices.CompositeWeb.Web.UI.Page 类,在这个父类Page中有个OnPreInit方法,做了相关的处理,同样用户控件也是因为继承了 Microsoft.Practices.CompositeWeb.Web.UI.UserControl 类。
具体这两个 Page 和 UserControl 父类,在它们各自的初始方法怎么实现,还有待研究....只能去查看源代码才能知道实现的原理.