首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CastleWindsor:FromAssemblyInDirectory -如何从多个目录添加?

CastleWindsor:FromAssemblyInDirectory -如何从多个目录添加?
EN

Stack Overflow用户
提问于 2014-03-26 03:23:21
回答 1查看 1.3K关注 0票数 0

考虑我正在使用的以下注册码:

代码语言:javascript
复制
container.Install(FromAssembly.InDirectory(new AssemblyFilter(AppDomain.CurrentDomain.BaseDirectory)),
            FromAssembly.InDirectory(new AssemblyFilter(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Jobs"))));

这是我所做的一系列注册中最简单的一行,我从基目录和"Jobs“子目录中选择DLL。语法是什么(如果有的话?)用于合并两个集合滤器?因为我显然不想重复注册码...随着注册人数的增加,情况变得更加丑陋。

我想自己写一个小类来做这件事,但是所有的函数都以AssemblyFilter而不是IAssemblyProvider作为参数。所以不去那里……

EN

回答 1

Stack Overflow用户

发布于 2014-03-26 14:56:43

我不知道Windsor对此的支持,但为了防止注册重复,我总是将注册提取到带有目录参数的helper函数中。例如:

代码语言:javascript
复制
static BasedOnDescriptor Connectors(string directory)
{
    return Classes.
        FromAssemblyInDirectory(new AssemblyFilter(directory)).
        BasedOn<IConnector>().
        LifestyleTransient().
        ConfigureDiagnostics();
}

然后像这样注册它:

代码语言:javascript
复制
container.Register(
    Connectors("Connectors"),
    Connectors("."));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22644381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档