博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Web Client Software Factory中CreateNew的使用
阅读量:4582 次
发布时间:2019-06-09

本文共 1111 字,大约阅读时间需要 3 分钟。

QuickStarts中有两个例程 ViewPresenter和 Module,根据比较这两个例程可以体会到CreateNew这个属性的用法
先看看ViewPresenter中在.aspx页面中
    private ApproveCustomerViewPresenter _presenter;
    protected void Page_Load(object sender, EventArgs e)
    {
        _presenter = new ApproveCustomerViewPresenter(this, new CustomersController());
        ...
    }
它申明了一个 _presenter变量,然后在 Page_Load中new了一个实例。
在Module中
private ApproveCustomerViewPresenter _presenter;
protected void Page_Load(object sender, EventArgs e)
{
}
[CreateNew]
    public ApproveCustomerViewPresenter Presenter
    {
        get
        {
            return _presenter;
        }
        set
        {
            _presenter = value;
            _presenter.View = this;
        }
    }
找不到一个new把 _presenter生成一个实例的,这个秘密就在 [CreateNew]上面
那 [CreateNew]是啥咚咚呢
它是一个自定义属性,支持程序根据需要生成一个实例。
[CreateNew]. This attribute tells the dependency injection system to always create a new one of whatever it is you need. This is helpful for patterns such as Model-View-Controller (MVC) or Model-View-Presenter (MVP), where creating a view automatically generates a new controller/presenter.
所以程序中就没有了new 一个 _presenter的实例。
[CreateNew]的具体工作是由ObjectBuilder完成的。
.

转载于:https://www.cnblogs.com/jekyllhy/archive/2007/04/29/731818.html

你可能感兴趣的文章
Android开源项目发现--- 工具类向下兼容篇(持续更新)
查看>>
零碎笔记之内存机制
查看>>
博客导览
查看>>
es基本操作
查看>>
Java内存模型之从JMM角度分析DCL
查看>>
java之反射机制
查看>>
Android之数据库操作
查看>>
引用 LPSTR、LPCSTR、LPTSTR、LPCTSTR、LPWSTR及LPCWSTR的意义及区别
查看>>
IIS7如何实现访问HTTP跳转到HTTPS访问 转的
查看>>
MongoDB的正确使用姿势
查看>>
玩转数据产品设计-小屏幕下的大数据
查看>>
Jmeter性能测试
查看>>
CF-242-C-King's Path
查看>>
键盘键码值
查看>>
spi驱动 (1):设计与规格(待完善)
查看>>
快速、冒泡排序算法(PHP版)
查看>>
PHP算法之二分查找和顺序查找
查看>>
Interleaving String
查看>>
用Thread和Task+async+awati实现WinFrom里面的进度条
查看>>
Python在使用for循环的时候不能修改循环中使用的变量
查看>>