有没有人有一些使用城堡windsor InstallerFactory订购安装程序的示例代码?
似乎无法在文档或其他地方找到它。
干杯
答案 0 :(得分:8)
您只能将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()));
希望这有帮助!