首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Autofac自定义生命周期管理器

Autofac自定义生命周期管理器
EN

Stack Overflow用户
提问于 2012-12-19 03:29:23
回答 3查看 1.9K关注 0票数 0

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

代码语言:javascript
复制
public class MyCustomLifestyleManager : AbstractLifestyleManager
{
 public overrid object Resolve(CreationContext context)
 {
 ...
 }

}

有谁知道如何在autofac中做到这一点吗?我知道standart生命周期管理器,但问题是我有可能制作自己的吗?

EN

回答 3

Stack Overflow用户

发布于 2012-12-19 03:33:44

我认为你会想要使用一个自定义的生命周期作用域,关于这一点,请参阅the Autofac blog post

Autofac通过生命周期范围迎合工作单元。生命周期作用域(ILifetimeScope)就像它听起来那样--一个作用域,当它完成时,一组相关组件的生命周期将结束。

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

This question提供了示例代码。

票数 1
EN

Stack Overflow用户

发布于 2012-12-19 04:06:35

您想要实现RequestLifetimeScopeProvider之类的ILifetimeScopeProvider

票数 0
EN

Stack Overflow用户

发布于 2012-12-19 23:06:57

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

正如您所注意到的,基于创建对对象执行自定义操作的方法是使用OnActivated或OnActivating事件。还有一个OnRelease,它允许您在处理时运行自己的自定义逻辑。但这将取决于您实现自己的扩展,以使该机制在语法上看起来很好。

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13940100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档