0
已在Web Form應用程序中配置Autofac,如下所示。Autofac解析Web Form應用程序的靜態類中的類型
var builder = new ContainerBuilder();
BootStrapper.InitializeBizTypes(builder);
builder.RegisterType<Component>().**InstancePerRequest()**;
_containerProvider = new ContainerProvider(builder.Build());
在一個頁面有一個GridView控件與ObjectDataSource的結合,爲ObjectDataSource控件的SelectMethod是一個靜態類的方法。
我在靜態類代碼:
private static IComponentContext GetContainer()
{
var cpa = (IContainerProviderAccessor)HttpContext.Current.ApplicationInstance;
return cpa.ContainerProvider.ApplicationContainer;
}
public static IList<RoleDto> GetRoles()
{
***var biz = GetContainer().Resolve<IRoleBiz>();***
return biz.GetRoles();
}
時解決的界面我得到以下錯誤。
從請求實例的 作用域可以看到沒有與「AutofacWebRequest」匹配的標記的作用域。
如果您在執行Web應用程序期間看到此內容,它通常表示 表示按照Single-HTTP()組件(或類似方案)請求註冊的組件爲 。 在Web集成下,始終請求依賴關係解析器或請求生命週期範圍內的依賴項,而絕不會從 容器本身請求依賴項。
所以我的問題是,當生命週期範圍是「InstancePerRequest」時如何解決在asp.net web窗體應用程序中的靜態類中的註冊類型?