Вы можете использовать InstallerFactory
только вместе с FromAssembly
классом.
При использовании FromAssembly вы не должны полагаться на порядок, в котором будут установлены / установлены ваши установщики. Это недетерминированный, что означает, что вы никогда не знаете, что это будет. Если вам нужно установить установщики в определенном порядке, используйте InstallerFactory.
В дополнение к этому вам следует наследовать от класса InstallerFactory
и применять свои собственные правила, касающиеся создания экземпляров определенных типов установщика.
Все вышеперечисленные методы имеют перегрузку, которая принимает экземпляр InstallerFactory. Большую часть времени вы не будете заботиться об этом, и все будет просто работать. Однако если вам требуется более жесткий контроль над установщиками из сборки (влияйте на порядок их установки, изменяйте способ их создания или устанавливайте только некоторые из них, но не все), вы можете унаследовать этот класс и предоставить собственную реализацию для достичь этих целей.
Пример класса может выглядеть так:
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()));
Надеюсь, это поможет!