2012-01-28 82 views

回答

8

可以結合FromAssembly類只使用InstallerFactory

使用FromAssembly時,不應該依賴於實例化/安裝安裝程序的順序。這是非確定性的,這意味着你永遠不知道它會是什麼。如果您需要按照特定順序安裝安裝程序,請使用InstallerFactory。

除此之外,您應該繼承InstallerFactory類並應用您自己的有關特定安裝程序類型實例的規則。

以上所有方法都有一個需要InstallerFactory實例的重載。大多數時候你不會關心它,事情就會發揮作用。但是,如果您需要更嚴格地控​​製程序集中的安裝程序(影響安裝它們的順序,請更改它們的實例化方式或僅安裝一些而不是全部),您可以從此類繼承並提供您自己的實現完成這些目標。

Sample類看起來是這樣的:

public class CustomInstallerFactory : InstallerFactory 
{ 
    public override IEnumerable<Type> Select(IEnumerable<Type> installerTypes) 
    { 
     return installerTypes.Reverse(); // just as an example 
    } 
} 

這裏是容器的初始化代碼:

IWindsorContainer container = new WindsorContainer().Install(FromAssembly.This(new CustomInstallerFactory())); 

希望這有助於!

+0

非常感謝,因爲在Windsor文檔中找不到代碼詳細信息 – Raffaeu 2013-02-01 08:23:13