C# 特定于环境的结构映射配置?

C# 特定于环境的结构映射配置?,c#,asp.net,.net,inversion-of-control,structuremap,C#,Asp.net,.net,Inversion Of Control,Structuremap,当我使用StructureMap 2.6时,通过将PullConfigurationFromAppConfig设置为TRUE,我可以让它从配置中提取配置数据。这有助于我根据构建配置覆盖实例 在最新版本中,这似乎不再存在。如何通过配置文件指定自定义实例,特别是web.config(我目前正在基于构建配置进行转换)。这可能吗?国际奥委会是否有其他框架支持这一点?谢谢。大多数DI容器都不再支持XML,因为它被认为是配置容器的过时方法。XML非常脆弱,并且没有编译时类型检查,因此使用它配置应用程序通常会

当我使用StructureMap 2.6时,通过将
PullConfigurationFromAppConfig
设置为TRUE,我可以让它从配置中提取配置数据。这有助于我根据构建配置覆盖实例


在最新版本中,这似乎不再存在。如何通过配置文件指定自定义实例,特别是
web.config
(我目前正在基于构建配置进行转换)。这可能吗?国际奥委会是否有其他框架支持这一点?谢谢。

大多数DI容器都不再支持XML,因为它被认为是配置容器的过时方法。XML非常脆弱,并且没有编译时类型检查,因此使用它配置应用程序通常会遇到更多麻烦

即使现在找到一个支持XML的DI容器,将来也不太可能支持它

当然,解决这一问题的方法是为您的用例添加所需的任何条件配置设置。例如,您可以使用以下内容:

<appSettings>
    <add key="DIConfig" value="Test" />
    <!--<add key="DIConfig" value="Production" />-->
</appSettings>
如果需要,您可以进行更多的配置文件设置(甚至是您自己的配置部分),以使配置更精细

if (ConfigurationManager.AppSettings["DIConfig"] == "Test")
{
    // load test configuration
}
else if (ConfigurationManager.AppSettings["DIConfig"] == "Production")
{
    // load production configuration
}