我正在学习castle.windsor在线教程。这是简单的示例代码:
public class Form1 {
private readonly HttpServiceWatcher serviceWatcher;
private System.ComponentModel.Container components = null;
public Form1()
{
InitializeComponent();
}
public Form1(HttpServiceWatcher serviceWatcher) : this()
{
this.serviceWatcher = serviceWatcher;
}
}
HttpServiceWatcher位于xml conf文件中。
我的问题是:谁在调用具有参数public Form1(Http....)
的构造函数?
在program.cs我有这个:
container.AddComponent("form.component",typeof(Form1));
Form1 form1 = (Form1) container["form.component"];
Application.Run(form1);
答案 0 :(得分:1)
容器在创建请求的对象时调用构造函数。被调用的构造函数是具有容器可以满足的最多参数的构造函数。
答案 1 :(得分:0)
依赖容器本身创建对象(从而调用构造函数)。