我剛開始使用Autofac和我有以下代碼:Autofac和WebForms - 傳遞非常量參數,解析參數?
public class _default : System.Web.UI.Page, IUserInformationProvider
{
protected void Page_Load(object sender, System.EventArgs e)
{
ControllerFactory cf;
using (scope == ((Global_asax)this.Context.ApplicationInstance).ContainerProvider.ApplicationContainer.BeginLifetimeScope()) {
cf = scope.Resolve<IControllerFactory>(); // <-- would love to pass "this" somewhere here, but how???
}
}
}
的ControllerFactory如下定義,還需要一個IUserInformationProvider接口。我想將WebForm的實例作爲參數傳遞給Resolve IControllerFactory。
public class ControllerFactory : IControllerFactory
{
protected IUserInformationProvider _userInformation;
public ControllerFactory(IUserInformationProvider userInformation)
{
_userInformation = userInformation;
}
}
查看文檔,我發現有3個參數類型(命名,類型,已解決),但前2個只採用常量值。看起來Resolved參數是要走的路,但我對如何實現它有點失落,或者即使這是正確的策略。那麼builder.Register會是什麼樣子?
是啊,但你變成了'UserInformation'成一個可選的依賴,現在在'ControllerFactory'的每一個方法,你會用理論'UserInformation'你需要檢查PROPERT y不是'null' ... – nemesv