【发布时间】:2011-11-18 14:52:11
【问题描述】:
我有一个具有以下属性的页面:
public partial class CustomPage : Page
{
[Dependency]
public ILogger Logger { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
Response.Write((this.Logger == null) ? "Not initialized" : "Initialized");
}
}
可以看出,ILogger 是一个依赖项,应该注入到这个类中。
Unity 配置文件的配置如下:
<unity>
<alias alias="ILogger" type="Logging.ILogger, AssemblyName" />
<alias alias="Logger" type="Logging.Logger, AssemblyName" />
<container>
<register type="ILogger" mapTo="Logger">
<lifetime type="singleton"/>
</register>
</container>
</unity>
在我的 Global.ascx 文件中,Application_Start 事件中有以下代码:
var container = new UnityContainer();
container.LoadConfiguration();
container.Resolve<CustomPage>();
我期望的是,当 CustomPage 运行时,ILogger 会被注入,但实际行为是它始终为空。
如何正确配置?
谢谢
【问题讨论】:
标签: asp.net dependency-injection inversion-of-control unity-container ioc-container