代码之家  ›  专栏  ›  技术社区  ›  Mark Rogers

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

  •  1
  • Mark Rogers  · 技术社区  · 14 年前

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

    ForRequestedType<IConfiguration>()
                    .TheDefault.Is.OfConcreteType<SqlServerConfiguration>()
                    .WithCtorArg("db_server_address")
                    .EqualToAppSetting("data.db_server_address")
    

    我当然可以包围整个世界 .EqualToAppSetting("data.db_server_address") ,与 #if DEBUG ,但由于某些原因,当我把这些陈述放进去时,我有点畏缩。我想知道是否有某种方法可以用StructureMap库本身来实现这一点。

    因此,我可以根据项目是在调试模式还是发布模式下构建来为对象提供不同的设置吗?

    1 回复  |  直到 14 年前
        1
  •  5
  •   Joshua Flanagan    14 年前

    StructureMap没有内置的“debug”或“release”模式检测。

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