.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이며 섹션에 세 가지 속성이 있습니다. 이 노드를 처리하기 위해 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을 호출하여 해시 테이블을 강제 적용한 후 노드의 속성 값을 키-값 형식으로 읽을 수 있습니다.
.net에서는 위 예의 유형 외에도 다른 내장 유형을 사용하여 사용자 정의 노드를 처리할 수도 있습니다.
위의 내용은 .Net입니다. .net 내장 핸들러를 사용하여 사용자 정의 노드 데모의 내용을 처리합니다. PHP 중국어 홈페이지(www.php.cn)를 주목해주세요!