是否可以将Autofac配置为使用ASP.NET Webforms来使用依赖注入
我的全球守则:
static IContainerProvider _containerProvider;
public IContainerProvider ContainerProvider
{
get { return _containerProvider; }
}
protected void Application_Start(object sender, EventArgs e)
{
var builder = new ContainerBuilder();
builder.RegisterType<EmployeeManager>().As<IEmployeeManager>().InstancePerRequest();
_containerProvider = new ContainerProvider(builder.Build());
}
我的网页代码:
private readonly IEmployeeManager _empManager;
public WebForm2(IEmployeeManager empManager)
{
_empManager = empManager;
}
protected void Page_Load(object sender, EventArgs e)
{
_empManager.GetAllEmployees();
}
错误:
答案 0 :(得分:2)
为了将依赖项注入Web表单页面(
System.Web.UI.Page
实例)或用户控件(System.Web.UI.UserControl
实例),您必须将其依赖项公开为允许设置的公共属性。这使PropertyInjectionModule
能够为您填充这些属性。
&GT; http://docs.autofac.org/en/latest/integration/webforms.html
由于ASP.net WebForm中的内部限制,页面中的构造函数注入是不可能的。 ASP.net WebForm页面中只允许注入属性。 documentation解释了如何处理这种限制。