我正在開發一個庫,內部分發給我公司並由各種應用程序使用。這個庫必須是平臺不可知的,因爲它可能被部署在Web上下文中,甚至在控制檯應用程序中。我想註冊對象爲per-http-request或per-thread,這取決於使用此框架的應用程序的上下文。在StructureMap中,我可以使用Hybrid生命週期來做到這一點。從本質上講,如果存在一個HttpContext,那麼該對象將被限定爲該範圍,否則ThreadLocalStorage將以每個線程爲基礎使用。分佈式庫或消費應用程序不需要額外的配置。這可能使用Autofac?鑑於我們開發人員技能水平的多變性,我們的目標是最大限度地減少/消除針對消費者的任何專門配置。自動選擇每個線程或每個請求的生命期範圍
據我所知,註冊可以是上下文無關使用InstancePerLifetimeScope壽命,但隨後消費應用程序都需要消耗ASP.NET/WCF/MVC積分二進制文件,以登記InstancePerLifetimeScope綁定到的HTTP請求。或者,對於每個線程範圍,消費代碼需要負責創建lifetime scope per thread。
有什麼建議嗎?
Autofac支持自定義生命週期,難道你不能模仿StructureMap的'Hybrid'生命週期嗎? – neontapir