2012-06-21 23 views
0

在我的ASP.NET MVC 3應用程序中,我有2個配置設置;玩和生活。根據所選配置更改一行代碼

現在,我有我的加載與基於配置應用程序之前,更改下面的代碼我目前已選擇:

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

所以,如果我有Play配置中選擇,我會註釋掉liveEmailAddress線和反之亦然

我想要做的是可能使用web.config文件來更改此代碼,而無需手動執行每次我加載我的應用程序與不同的配置通過將代碼行在配置文件然後rea從配置文件中將其從我的課程中刪除

+0

爲什麼不添加這些電子郵件地址在web.config itslef? –

+0

問題是什麼?如何從web.config讀取設置?如何在web配置中存儲電子郵件地址? –

+0

@PanagiotisKanavos兩個! – CallumVass

回答

1

您應該在您的Web配置文件中添加「應用程序密鑰」。給它任何名稱,如「OptionalEmail」,並相應地設置值。

當您發送電子郵件檢查值在配置文件中像

如果(ConfigurationManager.AppSettings [ 「OptionalEmail」] == 「PlayEmail」) SendEmail使用PlayEmail地址其他SendEmail使用工作鄂麥 地址。

希望得到這個幫助。 「ConfigurationManager.AppSettings [使用鍵或索引]

請記住,配置轉變‘XDT’只有當你部署Web應用程序的工作

+0

如何檢查配置文件中的值? – CallumVass

0

它通常是一個好主意,有一個名爲配置參數「環境」(或類似) 此鏈接介紹瞭如何從web.config閱讀:

var env = "play"; 
if(ConfigurationManager.AppSettings["environment"]=="live") env="live"; 
var email = env + "EmailAddress"; 
Mailer.SendMessageTo(email, "MailBody"); 
http://msdn.microsoft.com/en-us/library/610xe886.aspx來實現,這將是

的一種方式

作爲附加的註釋,如果你有多個開發人員,每個希望自己的「玩」 - 地址,那麼你可以擴展設置到包括開發商機名稱:

<appSettings> 
     <add key="environment" value="play"/> 
     <add key="liveEmailAddress" value="[email protected]"/> 
     <add key="myCoolPC-playEmailAddress" value="[email protected]"/> 
     <add key="otherDevPC-playEmailAddress" value="[email protected]"/> 
</appSettings> 

,但那麼你就必須改變上面的實現是在獲取設置之前爲主機名添加前綴,但僅限於當前處於播放模式。

相關問題