ahs*_*ele 5 c# structuremap configuration
我有一个集中的StructureMap配置,各种用户界面应用程序附加到该配置.我从来没有需要修改只附加到它的"核心"配置.我今天遇到了一个实例,我需要修改/删除特定应用程序的核心配置.当然,我可以将核心配置代码移到不同的应用程序中,但在此之前,我想确保我没有错过使用StructureMap api的一些明显的东西.以下是我的核心配置的缩写版本:
ObjectFactory.Initialize(cfg =>
{
cfg.Scan(scan =>
{
scan.Assembly("Core");
scan.WithDefaultConventions();
scan.ConnectImplementationsToTypesClosing(typeof(IValidationRule<>));
// more after this....
}
}
Run Code Online (Sandbox Code Playgroud)
在这个应用程序的运行时,我想删除关闭类型的配置IValidationRule,但还没有提出任何可行的.所有弹出方法似乎都围绕着单身人士的意思.由于我不处理单身,以下不起作用:
ObjectFactory.Model.For(typeof(IValidationRule<>)).EjectAndRemoveAll(); //no work
ObjectFactory.Model.EjectAndRemove(typeof(IValidationRule<>)); //nor does this
Run Code Online (Sandbox Code Playgroud)
有没有办法可以修改我的StructureMap配置而不寻找IValidationRules?我可以弹出IValidationRules的非单例实例吗?我还有其他选项可以修改我的StructureMap配置吗?
小智 2
像下面这样的东西怎么样?我认为这应该有效。
ObjectFactory.Model.EjectAndRemoveTypes(match
=> match != null && match.GetInterfaces().Any(i
=> i.Name.Contains("IValidationRule")));
Run Code Online (Sandbox Code Playgroud)