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 アドレスを使用して E メールを送信する else 職場の E メール アドレスを使用して E メールを送信する。

この助けを願っています。"ConfigurationManager.AppSettings[キーまたはインデックスを使用]

Config Transformations "xdt"は、Web アプリケーションをデプロイする場合にのみ機能することに注意してください。

于 2012-06-21T11:11:38.060 に答える
0

一般に、「環境」などの名前の構成パラメーターを使用することをお勧めします。このリンクでは、web.config から読み取る方法について説明しています: http://msdn.microsoft.com/en-us/library/610xe886.aspx

これを実装する1つの方法は次のとおりです。

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 に答える