有一個更好的方法。首先,啓用the Web integration module。這將啓用自動屬性注入實例。
由於您的演示需要在其構造的觀點,你的頁面應該採取一個主持人工廠,而不是主持人本身的依賴。
所以,首先你需要演示的工廠,這是必要的參數的委託:
public delegate IOCTestPresenter IOCTestPresenterFactory(IIOCTestView view);
此委託必須演示構造函數的參數(類型和名稱)匹配:
public class IOCTestPresenter
{
public IOCTestPresenter(IIOCTestView view)
{
}
}
在您的視圖中,添加一個接收出廠委託的屬性,並使用委託來創建演示者:
public partial class IOCTest
{
public IOCTestPresenterFactory PresenterFactory {get;set;}
protected void Page_Load(object sender, EventArgs e)
{
var presenter = PresenterFactory(this);
}
}
在您的容器設置中,您必須進行以下注冊:
builder.Register<IOCTestPresenter>().FactoryScoped();
builder.RegisterGeneratedFactory<IOCTestPresenterFactory>();