【问题标题】:Lifetime management in mvc turbine?mvc涡轮机的生命周期管理?
【发布时间】:2010-12-27 16:34:18
【问题描述】:

如何在 mvc 涡轮机中管理我的服务的生命周期(使用 Unity)?

我有一个 ISearchService 实现 LuceneSearchService,它采用 IConfigurationService 和 ILoggerService。

目前我的搜索服务注册如下所示:

public class SearchServiceRegistration: IServiceRegistration
{
    public void Register(IServiceLocator locator)
    {
        locator.Register<ISearchService, LuceneSearchService>();
    }
}

我想继续负责在 Turbine 中创建实例,但我希望它是单例的。

或者换句话说,我如何定义生命周期?

【问题讨论】:

    标签: c# unity-container ioc-container object-lifetime turbine


    【解决方案1】:

    目前涡轮钻头不允许进行生命周期管理,因为我认为这最适合您的容器。如果您有兴趣,可以使用我在这篇博文中定义的内容:Injecting Your Favorite IoC Into MVC Turbine

    如果您可以在 IServiceRegistration 实现中公开您的容器,您可以执行以下操作:HACK to expose your specific SL within your registration

    如果我收到很多需要生命周期管理的请求,我会将其添加到 Turbine 的 V3 中。

    【讨论】:

    • 谢谢。与此同时,我发现我可以自己创建容器。但是因为我的服务需要在我创建容器时不会自动发现的其他服务,所以我现在必须自己完成整个注册。这是一个无赖。期待 V3 :D 另外:我要感谢 Turbine。我终于掌握了几个月来一直试图掌握的概念:)
    • 我猜,没有按照您的说法,“我的服务需要在我创建容器时没有自动发现的其他服务,我现在必须自己完成整个注册。”你想做什么?通常,使用公开的 IServiceLocator,您可以注册临时服务,并且需要在应用程序中进行简单注册。提供您自己的容器用于更复杂的注册。如果您不介意我问,您使用的是哪个容器?
    猜你喜欢
    • 2011-03-22
    • 2011-01-25
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-12
    相关资源
    最近更新 更多