Ben*_*Ben 4 asp.net web-config
根据我的经验,web.config文件受到广泛谴责.特别是,当您有多个支持环境时,我发现它们很难管理,并且由于缺少更新时的验证和XML的冗长而需要更新.
有哪些替代方案?
我个人不介意Web.Config用于小型一次性应用程序,但对于任何实质性的东西,我都避免将它们用于应用程序配置.
这是我做的......
这是一个例子......
// Config Contract
public interface IWebAppConfig
{
string SmtpHost { get; }
string RootUrl { get; }
}
// Define Common Config Values (values that don't change per environment)
public abstract class AbstractWebAppConfig : IWebAppConfig
{
public string SmtpHost { get { return "smtp.google.com"; } }
public abstract RootUrl { get; }
}
// Dev Config Settings
public class DevWebAppConfig : AbstractWebAppConfig
{
public override string RootUrl { get { return "http://localhost:1322"; } }
}
// Stage Config Settings
public class StageWebAppConfig : AbstractWebAppConfig
{
public override string RootUrl { get { return "http://stage.mysite.com"; } }
}
// Prod Config Settings
public class ProdWebAppConfig : AbstractWebAppConfig
{
public override string RootUrl { get { return "http://www.mysite.com"; } }
}
Run Code Online (Sandbox Code Playgroud)
这种方法的优点:
您仍然可以使用web.config来定义环境,这是我通常通过将以下内容添加到appSettings来执行的操作:
<appSettings>
<!-- accepts: dev|stage|prod -->
<add key="Env" value="dev" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)
或者,它可以通过使用Envrionment Variables或其他一些构造来基于机器.
| 归档时间: |
|
| 查看次数: |
1941 次 |
| 最近记录: |