我從1.4.4的資源中看到,Autofac的ASP.NET集成(通過Autofac.Integration.Web)將Page
上的屬性注入爲HttpContext.PreRequestHandlerExecute
事件處理的一部分,但是頁面的子控件不受控制, t得到他們的屬性注入,直到Page.PreLoad
。Autofac的ASP.NET集成是否支持PreInit或Init事件?
這是什麼意思,雖然是子控件的注入屬性不可用於OnInit事件處理程序。
例如,這工作得很好:
HelloWorld.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="HelloWorld.aspx.cs" Inherits="HelloWorld" %>
<html>
<body>
<asp:Label runat="server" id="lblMsg" OnInit="HandleInit"/>
</body>
</html>
HelloWorld.aspx.cs:
...
protected void HandleInit()
{
lblMsg.Text = _msgProvider.GetMessage();
}
public IMsgProvider _msgProvider { private get; set; } // <-- Injected
但改變的HelloWorld Page
到UserControl
(.acsx),並把用戶控件在另一頁不起作用,因爲_msgProvider
沒有注入足夠早。
有沒有辦法讓Autofac更早地注入子控件的屬性?或者這是可以在未來構建中解決的問題?謝謝!
這可能會進入Autofac問題跟蹤器:http://code.google.com/p/autofac/issues/list – 2010-03-11 07:40:38
作爲問題#203添加(http://code.google.com/p/autofac/issues/detail?id = 203) – 2010-03-11 17:24:24
現在針對此問題的任何解決方法或修補程序? – 2014-11-19 06:15:34