我有一个集中的 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
s?我可以弹出IValidationRule
s 的非单例实例吗?我是否有其他选项来修改我的 StructureMap 配置?