考虑我正在使用的以下注册码:
container.Install(FromAssembly.InDirectory(new AssemblyFilter(AppDomain.CurrentDomain.BaseDirectory)),
FromAssembly.InDirectory(new AssemblyFilter(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Jobs"))));这是我所做的一系列注册中最简单的一行,我从基目录和"Jobs“子目录中选择DLL。语法是什么(如果有的话?)用于合并两个集合滤器?因为我显然不想重复注册码...随着注册人数的增加,情况变得更加丑陋。
我想自己写一个小类来做这件事,但是所有的函数都以AssemblyFilter而不是IAssemblyProvider作为参数。所以不去那里……
发布于 2014-03-26 14:56:43
我不知道Windsor对此的支持,但为了防止注册重复,我总是将注册提取到带有目录参数的helper函数中。例如:
static BasedOnDescriptor Connectors(string directory)
{
return Classes.
FromAssemblyInDirectory(new AssemblyFilter(directory)).
BasedOn<IConnector>().
LifestyleTransient().
ConfigureDiagnostics();
}然后像这样注册它:
container.Register(
Connectors("Connectors"),
Connectors("."));https://stackoverflow.com/questions/22644381
复制相似问题