如何为不同的场景配置ninject绑定?

时间:2015-03-08 16:30:10

标签: asp.net-mvc azure dependency-injection ninject

当我在本地运行MVC 5站点时,我想使用这些 ninject绑定。当我在azure上的生产中运行它时,我想使用那些绑定(除了几个不同的绑定之外几乎相同)。

我该如何检测这个,这个条件代码应该去哪里?

1 个答案:

答案 0 :(得分:1)

为了防止您必须为每个环境分别设置编译,您应该从web.config驱动DI配置。这样就可以打开一次编译门,随处部署策略。

<appSettings>
    <add key="UseSpecialDI" value="true" />
</appSettings>

在您的DI配置中:

bool useSpecialDI = ConfigurationManager.AppSettings["UseSpecialDI"].ToLower() == "true";

if (useSpecialDI)
{
    // Use "those settings"
}
else
{
    // Use "these settings"
}

与您的DI配置非常相似,最好使用细粒度的配置设置来执行特定的操作,而不是广泛的设置来更改DI配置的大块。