可以配置StructureMap,以便根据项目是在调试模式还是在发布模式下构建,可以使用不同的.config设置?

Mar*_*ers 1 structuremap web-config configuration-files ioc-container

我知道在StructureMap中,当我想将特定参数传递给对象的构造函数时,我可以从我的*.config文件(或它们引用的文件)中读取.

ForRequestedType<IConfiguration>()
                .TheDefault.Is.OfConcreteType<SqlServerConfiguration>()
                .WithCtorArg("db_server_address")
                .EqualToAppSetting("data.db_server_address")
Run Code Online (Sandbox Code Playgroud)

但我想要做的是从调试模式下的一个配置设置和另一个在发布模式下读取.

当然,我可以环绕.EqualToAppSetting("data.db_server_address"),有#if DEBUG,但由于某些原因这些语句让我畏缩了一点,当我把他们.我想知道是否有某种方式与StructureMap库本身做到这一点.

那么我可以根据项目是在调试模式还是发布模式下为我的对象提供不同的设置?

Jos*_*gan 5

StructureMap没有"调试"或"释放"模式的内置检测.

但是,当您通过其DSL(在注册表中,或在容器上调用Initialize()或Configure())以编程方式配置StructureMap时,您使用的是C#语言.你可以做任何C#允许的事情.因此,你的问题变成了"在调试模式下有没有一种方式在c#中有条件地运行一些代码",最明显的答案可能是使你感觉不好的条件编译指令.