gpt4 book ai didi

c# - 如何修改以前配置的 StructureMap 配置?

转载 作者:太空狗 更新时间:2023-10-29 23:40:07 25 4
gpt4 key购买 nike

我有一个集中的 StructureMap 配置,各种用户界面应用程序附加到该配置。我从来不需要修改“核心”配置只附加到它。我今天遇到了一个实例,我需要修改/删除特定应用程序的核心配置。当然,我可以将核心配置代码移到不同的应用程序中,但在我这样做之前,我想确保我没有遗漏 StructureMap api 中明显的东西。以下是我的核心配置的缩写版本:

ObjectFactory.Initialize(cfg =>
{
cfg.Scan(scan =>
{
scan.Assembly("Core");
scan.WithDefaultConventions();

scan.ConnectImplementationsToTypesClosing(typeof(IValidationRule<>));
// more after this....
}
}

在这个应用程序的运行时,我想删除关闭 IValidationRule 类型的配置,但还没有想出任何可行的方法。所有的弹出方法似乎都围绕着单例意义。由于我不处理单例,因此以下内容不起作用:

ObjectFactory.Model.For(typeof(IValidationRule<>)).EjectAndRemoveAll(); //no work

ObjectFactory.Model.EjectAndRemove(typeof(IValidationRule<>)); //nor does this

有没有一种方法可以修改我的 StructureMap 配置以不查找 IValidationRule?我可以弹出 IValidationRule 的非单例实例吗?我是否有其他选项来修改我的 StructureMap 配置?

最佳答案

像下面这样的东西呢?我认为这应该可行。

ObjectFactory.Model.EjectAndRemoveTypes(match
=> match != null && match.GetInterfaces().Any(i
=> i.Name.Contains("IValidationRule")));

关于c# - 如何修改以前配置的 StructureMap 配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13811601/

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