gpt4 book ai didi

c# - 过滤命名空间中除当前程序集之外的所有程序集

转载 作者:行者123 更新时间:2023-11-30 20:33:07 25 4
gpt4 key购买 nike

我在我的解决方案中使用 IoC,该解决方案分为以下项目:

工具箱.DAL
工具箱.BL
工具箱.EntityFramework
Toolbox.API(主项目)

为了在我的主项目中注册组件,我使用了以下代码:

using (WindsorContainer container = new WindsorContainer())
{
AssemblyFilter filter = new AssemblyFilter(HttpRuntime.BinDirectory, "Toolbox.*.dll");
IWindsorInstaller installer = FromAssembly.InDirectory(filter);

return new CastleInitialiser(container.Install(installer));
}

但是,这导致了一个问题,即我的主项目中的依赖项被注册两次 - 一次在正常初始化期间,然后再次从编译的程序集中注册。

有什么方法可以更改过滤器,以便它可以拾取除当前项目程序集之外的所有程序集?我一直在四处寻找,但找不到任何关于如何正确使用程序集过滤器的合适示例。

最佳答案

刚刚看了source code

您可以添加其他过滤器。

using (WindsorContainer container = new WindsorContainer())
{
AssemblyFilter filter = new AssemblyFilter(HttpRuntime.BinDirectory, "Toolbox.*.dll");

//this
filter = filter.FilterByName(name => !name.Name.Equals("Toolbox.API"));

IWindsorInstaller installer = FromAssembly.InDirectory(filter);

return new CastleInitialiser(container.Install(installer));
}

我的语法可能不是 100% 正确,但它应该说明如何做到这一点。

关于c# - 过滤命名空间中除当前程序集之外的所有程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40613693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com