首頁  >  文章  >  後端開發  >  .Net-使用.net內建處理程序處理自訂節點Demo

.Net-使用.net內建處理程序處理自訂節點Demo

黄舟
黄舟原創
2017-02-24 10:34:221527瀏覽

在.net中,因為對不同的節點,都對應著類別去對它進行處理,。 net裡面為了方便,已經內建了一些類別供我們使用,使我們在讀取設定檔時,不必自己去定義類別去處理自己定義的自訂節點。

下面我們寫了這樣一個設定檔:  

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <!--使用IgnoreSection处理自定义节点-->
    <!--<section name="mailServeraddress" type="System.Configuration.IgnoreSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false " restartOnExternalChanges="true"/>-->

    <section name="mailServeraddress" type="System.Configuration.SingleTagSectionHandler" />
    
    <!--注意,指定处理程序的配置文件要写在自定义配置文件的前面-->
  </configSections>
  
  
  <mailServeraddress address="mail.tracefact.net" username="lhc" password="124324"/>

 
</configuration>

節點名稱為:mailServeraddress,有三個屬性,在section裡定義了SingleTagSectionHandler來處理這個節點。

namespace 自定义节点和内置处理程序
{
    class Program
    {
        static void Main(string[] args)
        {
            ExampleSingleTagSectionHandler();

        }

        private static void ExampleSingleTagSectionHandler() {
            //SingleTagSectionHandler会以hashtable的形式返回节点的所有属性
            Hashtable mailServer = (Hashtable)ConfigurationManager.GetSection("mailServeraddress");//调用GetSection会返回一个hashtable

            string address = mailServer["address"].ToString();
            string username = mailServer["username"].ToString();
            string passWord = mailServer["password"].ToString();

            Console.WriteLine(address+"----"+username+"------"+passWord);

            
        }
    }
}

設定檔寫好後,呼叫GetSection強轉hashtable後,就可以用key-value的形式讀取節點的屬性值了。

 在.net中,除了上面範例中的這個type,我們也可以使用其它內建type來處理自訂節點。


 以上是.Net-使用.net內建處理程序處理自訂節點Demo 的內容,更多相關內容請關注PHP中文網(www.php.cn)!










##########
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn