2011-10-06 15 views
7

の異なる部分でのAppSettingを参照することができ、私のappSettingsAppsettings.Dev.Configと呼ばれる別の設定ファイルに定義されている、と私はそうは、どのように私は私が持っているweb.configファイル

<appSettings configSource="ConfigFiles\AppSettings.Dev.config"/> 

言うことができますように私のweb.configファイル内のそのファイルが含まれますファイルの設定の一つが

<add key="MailerEmailAccount" value="[email protected]" /> 

である私は他の場所で、web.configファイル内の設定MailerEmailAccountの値にアクセスすることはできますか?どうやって?

答えて

4

いいえ、Web設定ファイルは「設定」を自分自身から取得できません。それはまったく動的ではありません。唯一のダイナミックな機能は、他の.configファイルを含めることですが、「これらの設定をすべて私の一部であるかのように吸い取ってください」というものです。

+0

を働くだろう

EDIT

configSource属性。これは、system.netタグ内のmailSettingsタグ(またはsystem.netタグ自体)では機能しないようです。他のファイルからappSettingsとconnectionStrings以外の設定を取得する方法はありますか? – floatingfrisbee

+0

制限があるかどうかわかりません。あなたのように私は主にappSettingsとconnectionStringsのために使用します。 VS2010を使用している場合は、Web.Configの変換も考慮する必要があります。http://weblogs.asp.net/srkirkland/archive/2009/10/13/common-web-config-transformations-with-visual-studio -2010.aspx – CodingGorilla

+0

system.netとmailSettingsタグは、別のファイルから取得することはできません。ただし、smtpタグ(mailSettingsの子)は可能です。私はweb.config変換を使用していますが、この特定の問題はそれだけでは解決できませんでした。ありがとう。 – floatingfrisbee

4

appSettingsから値を取得するカスタムConfigurationSectionを作成すると、可能性があります。ここで

は、カスタム構成セクションを作成する方法について説明の記事です:
http://haacked.com/archive/2007/03/12/custom-configuration-sections-in-3-easy-steps.aspx

これはあなたが探しているものであれば、私は知りませんが、それは読むことを私は考えることができる唯一の方法ですweb.configからの設定です。私が使用してのappSettingsとのconnectionStringsのための(別のファイルからの設定に引っ張る)ことをやる私はこれをテストしていませんが、多分このようなものは?:

[ConfigurationProperty("localName", IsRequired = true, IsKey = true)] 
public string LocalName 
{ 
    get 
    { 
     return this["localName"] as string; 
    } 
    set 
    {     
     this["localName"] = WebConfigurationManager.AppSettings.Get(value); 
    } 
} 
+0

そのハッキングされたリンクとコードスニペットをありがとう。私が今必要なものに対してコードが動作するかどうかは分かりませんが、それは良い考えです。 – floatingfrisbee

関連する問題