2014-03-25 30 views
0

考虑我使用下面的注册代码:CastleWindsor:FromAssemblyInDirectory - 如何从多个目录添加?

container.Install(FromAssembly.InDirectory(new AssemblyFilter(AppDomain.CurrentDomain.BaseDirectory)), 
      FromAssembly.InDirectory(new AssemblyFilter(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Jobs")))); 

这是一帮注册我做的,在这里我要选的DLL无论从基本目录以及一个“乔布斯”的最简单的行子目录。用于合并两个组装过滤器的语法(如果有的话)是什么?因为我显然不想重复注册代码....并且它的注册量越来越大。

我想要自己写一个小类去做,但是所有的函数都把AssemblyFilter作为参数而不是IAssemblyProvider?所以没有去那里.....

回答

1

我不知道在温莎的任何支持,但为了防止注册的重复我总是提取注册到辅助函数与目录参数。例如。

static BasedOnDescriptor Connectors(string directory) 
{ 
    return Classes. 
     FromAssemblyInDirectory(new AssemblyFilter(directory)). 
     BasedOn<IConnector>(). 
     LifestyleTransient(). 
     ConfigureDiagnostics(); 
} 

,然后注册它想:

container.Register(
    Connectors("Connectors"), 
    Connectors(".")); 
+0

啊。谢谢,这确实有助于可读性。 – Vivek

相关问题