代码之家  ›  专栏  ›  技术社区  ›  DanP

我能否急切地使用castle windsor实例化注册为单例的实例?

  •  3
  • DanP  · 技术社区  · 16 年前

    在castle windsor中,当用单例生命周期注册实例时,有没有一种方法可以急切地实例化它们(而不是在第一次注入时初始化它们)?

    更新:

    1. 这些实例包含一些初始化代码,这些代码有利于在启动时运行,这就是为什么我对这样做感兴趣。
    2. 我使用 AllTypes.Pick() ,所以我更喜欢一种解决方案,它不需要我在构建容器之后分别从容器中手动解析每个实例。
    1 回复  |  直到 16 年前
        1
  •  4
  •   Krzysztof Kozmic    16 年前

    是的,您可以使用Startable设备(温莎提供):

    container.AddFacility<StartableFacility>(
    // optionally in v2.5
    f=> f.DeferredStart()
    );
    container.Register(
       AllTypes.FromThisAssembly()
          .Pick().WhateverYouWant()
          .Configure(c => c.Start());
    

    DeferredStart 方法在v2.5和 you can see here

    Start() 被称为 Startable()

    推荐文章