Autofac を使い始めたばかりで、次のコードがあります。
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 つのパラメーター タイプ (Named、Typed、Resolved) があることがわかりますが、最初の 2 つは定数値のみを取ります。解決されたパラメーターが進むべき道のようですが、それを実装する方法、またはそれが正しい戦略であるかどうかについて、私はちょっと迷っています。そして、builder.Register はどのように見えるでしょうか?