0

我在 Autofac 中没有找到一种可能性。自定义生命周期管理器。例如,在 Windsor.Castle 中,可以编写简单地从AbstractLifestyleManager.

public class MyCustomLifestyleManager : AbstractLifestyleManager
{
 public overrid object Resolve(CreationContext context)
 {
 ...
 }

}

有人知道如何在autofac中做到这一点吗?我知道标准的终身经理,但问题是可以自己制作吗?

4

3 回答 3

1

我认为您想使用自定义生命周期范围,请参阅Autofac 博客文章

Autofac 在生命周期范围内满足工作单元的需求。ILifetimeScope生命周期范围(

在处理工作单元期间解析的组件实例与生命周期范围相关联。通过跟踪实例化顺序并确保依赖关系只能由相同或更长生命周期范围内的组件满足,Autofac 可以在生命周期范围结束时负责处理。

这个问题提供了示例代码。

于 2012-12-18T19:33:44.320 回答
0

您想要实现ILifetimeScopeProvider诸如RequestLifetimeScopeProvider

于 2012-12-18T20:06:35.417 回答
0

除非您在 Web 应用程序中,否则没有简单的方法来实现您自己的自定义生活方式。Web 应用程序具有生命周期范围提供程序(通常用于请求范围),但其他应用程序没有。

正如您所注意到的,根据创建对对象执行自定义操作的方法是使用 OnActivated 或 OnActivating 事件。还有一个 OnRelease 允许您随时运行自己的自定义逻辑。但是您可以自己实现扩展以使该机制在语法上看起来不错。

您还可以将委托表达式(lambdas)注册为依赖项,这样您就可以在那里做一些漂亮的事情。

在所有这些事情之间,你应该能够完成你想做的事情。

于 2012-12-19T15:06:57.253 回答