我正在开发一个库,内部分发给我公司并由各种应用程序使用。这个库必须是平台不可知的,因为它可能被部署在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