2013-12-17 53 views
0

我需要將一個密鑰從machine.config移到web.config。以下是machine.config中的設置。從machine.config重寫密鑰到web.config

<commonsettings> 
    <setting environment="dev"> 
     <common> 
      <value1>myValue1</value1> 
      <value2>myValue2</value2> 
      <value3>myValue3</value3> 
     </common> 
    </setting> 
</commonsettings> 

我所提到的設置在machine.config中定義的目前(3個鍵 - 值1,值2,值3),我想只有在web.config中宣佈值1。

我聲明只有value1設置,但它不起作用。 SECION只承認價值1。我無法訪問value2,並在machine.config中聲明value3

下面是我在web.config中所做的。

<commonsettings> 
    <setting environment="dev"> 
     <common> 
      <value1>myValue1</value1> 
     </common> 
    </setting> 
</commonsettings> 

我想要的是,web.config執行一些繼承,而不是覆蓋整個部分。

有人可以幫我解決這個問題嗎?

+0

你是否試圖手動移動這些配置設置(例如,用記事本和複製/粘貼)或者你是否試圖從代碼中執行它? – mason

+0

我試圖做的沒有代碼更改,只需複製/粘貼。 – user3112886

+0

你沒有解釋你的錯誤來自哪裏。你剛纔說「它不起作用」。你遇到的問題具體是什麼? – mason

回答

0

,你可以做,在你的代碼 我假設你正在定義的處理程序的輸入您的machine.config:

<configuration> 
    <configSections> 
     <section name="commonsettings" type="YourConfigSectionHandler, YourLibrary, Version=1.1.0.0"/> 
</configSections> 
<!-- More configuration--> 
<configuration> 

和創建應用內的一類類型:

public class YourSectionHandler : IConfigurationSectionHandler 
{ 
    public object Create(object parent, object configContext, XmlNode section) 
    { 
     //your code to handler the configSection 
    } 
} 

如果看到Create方法有一個參數object parent。它將包含父配置的配置。

我suposse你只有一個machine.config和一個web.config。

  1. 一旦應用程序啓動,它會嘗試解析machine.config/configSection/commonsettings/(部分應該有聲明)和Create方法會調用一個null父。
  2. 稍後,您的應用的配置將被解析,並且Create方法將再次被調用。現在,parent object參數將保存上一步分析結果的值。