0

在我的 ASP.NET MVC 3 应用程序中,我有 2 个配置设置;玩和生活。

现在,我必须在根据我当前选择的配置加载我的应用程序之前更改以下代码:

Mailer.SendMessageTo("playEmailAddress", "MailBody");
// Mailer.SendMessageTo("liveEmailAddress", "MailBody");

因此,如果我Play选择了配置,我将注释掉该liveEmailAddress行,反之亦然

我想做的也许是利用该web.config文件为我更改此代码,而无需每次通过将代码行放入配置文件中然后读取它来使用不同的配置加载我的应用程序时手动进行我班级中的配置文件

4

2 回答 2

1

您应该在 Web 配置文件中添加“应用程序密钥”。给它任何名称,如“OptionalEmail”,并相应地设置值。

当您发送电子邮件时,请检查配置文件中的值,例如

If(ConfigurationManager.AppSettings["OptionalEmail"]=="PlayEmail") 使用 PlayEmail 地址发送电子邮件,否则使用工作电子邮件地址发送电子邮件。

希望这有帮助。"ConfigurationManager.AppSettings[使用键或索引]

请记住,配置转换“xdt”仅在您部署 Web 应用程序时有效

于 2012-06-21T11:11:38.060 回答
0

拥有一个名为“环境”(或类似名称)的配置参数通常是个好主意。此链接说明了如何从 web.config 中读取:http: //msdn.microsoft.com/en-us/library/610xe886.aspx

实现这一点的一种方法是:

var env = "play";
if( ConfigurationManager.AppSettings["environment"]=="live" ) env="live";
var email = env + "EmailAddress";
Mailer.SendMessageTo(email, "MailBody");

作为附加说明,如果您有多个开发人员,每个人都想要自己的“播放”地址,那么您可以扩展设置以包含开发人员的机器名称:

<appSettings>
      <add key="environment" value="play"/>
      <add key="liveEmailAddress" value="a@b.com"/>
      <add key="myCoolPC-playEmailAddress" value="c@d.com"/>
      <add key="otherDevPC-playEmailAddress" value="bubba@test.com"/>
</appSettings>

但是您必须在获取设置之前更改上面的实现以添加主机名前缀,但前提是当前处于播放模式。

于 2012-06-21T11:15:45.053 回答