0%

【WebConfig】擴充WebConfig

做專案時常常會有測試機與正式機的區別,又兩者要呼叫的API常常也有正式與測試的區別。如果將網址寫死在Code裡,將造成佈署測試機時compile一次,佈署到正式機又要打開code改好網址後再compile一次,不僅耗時又容易出錯。

所以大部分有這種情況時會將網址參數寫在WebConfig裡,這樣只要到兩台機器去修改參數網址即可,避免了一再compile的問題。

1
2
3
4
5
<appSettings>
<add key="APIUrlTest" value="TestAPI.com.tw" />
<add key="APIUrl" value="xxx.com.tw" />
</appSettings>

但可能會有很多類似這種參數會寫在Config裡,網址、時間、變數…琳瑯滿目,寫到最後連RD自己也搞得亂七八糟,所以就會寫要將同類型的參數歸類整理一翻。接下來Demo如何將WebConfig隔離與整理。

  • 首先先在專案中新增一個新的Config檔,就暫且命名為i.config
  • 在這個i.config中寫下新的區段(這邊我創了一個新的區塊叫iconfig)
  • 接著到Web.Config註冊這個區段
      *   在configSections中註冊[![](http://4.bp.blogspot.com/-Fgx71lYcBws/UkprtA0ViaI/AAAAAAAAELY/07Mhjt5ygQ4/s1600/1.png)](http://4.bp.blogspot.com/-Fgx71lYcBws/UkprtA0ViaI/AAAAAAAAELY/07Mhjt5ygQ4/s1600/1.png)
    
    • 在appSettings區段下面註冊
  • 在code裡面抓取i.config參數值得方法 ```csharp
    public class iconfig
    {
    private static System.Collections.Hashtable iConfig = (System.Collections.Hashtable)System.Configuration.ConfigurationManager.GetSection(“iconfig”);
    public static string ReservationApi { get { return (string)iConfig[“ReservationApi”]; } }
    }

```
依照上述方法就可以將很多不同類型的參數分門別類的整理起來了!!!