XmlNodeChangedEventHandler 代理人
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示處理 NodeChanged、 NodeChanging、 NodeInserted、 NodeInserting及 NodeRemovedNodeRemoving 事件的方法。
public delegate void XmlNodeChangedEventHandler(System::Object ^ sender, XmlNodeChangedEventArgs ^ e);
public delegate void XmlNodeChangedEventHandler(object sender, XmlNodeChangedEventArgs e);
type XmlNodeChangedEventHandler = delegate of obj * XmlNodeChangedEventArgs -> unit
Public Delegate Sub XmlNodeChangedEventHandler(sender As Object, e As XmlNodeChangedEventArgs)
參數
- sender
- Object
事件的 來源。
an XmlNodeChangedEventArgs 包含事件資料。
範例
以下範例說明如何處理 NodeChanged 和 NodeInserted 事件。
using System;
using System.IO;
using System.Xml;
namespace Microsoft.Samples.Xml
{
public class Sample
{
private const String filename = "book.xml";
public static void Main()
{
Sample mySample = new Sample();
mySample.Run(filename);
}
public void Run(String args)
{
// Create and load the XML document.
Console.WriteLine("Loading file {0} ...", args);
XmlDocument doc = new XmlDocument();
doc.Load(args);
//Create the event handlers.
doc.NodeChanged += new XmlNodeChangedEventHandler(this.MyNodeChangedEvent);
doc.NodeInserted += new XmlNodeChangedEventHandler(this.MyNodeInsertedEvent);
// Change the book price.
doc.DocumentElement.LastChild.InnerText = "5.95";
// Add a new element.
XmlElement newElem = doc.CreateElement("style");
newElem.InnerText = "hardcover";
doc.DocumentElement.AppendChild(newElem);
Console.WriteLine("\r\nDisplay the modified XML...");
Console.WriteLine(doc.OuterXml);
}
// Handle the NodeChanged event.
private void MyNodeChangedEvent(Object source, XmlNodeChangedEventArgs args)
{
Console.Write("Node Changed Event: <{0}> changed", args.Node.Name);
if (args.Node.Value != null)
{
Console.WriteLine(" with value {0}", args.Node.Value);
}
else
{
Console.WriteLine("");
}
}
// Handle the NodeInserted event.
private void MyNodeInsertedEvent(Object source, XmlNodeChangedEventArgs args)
{
Console.Write("Node Inserted Event: <{0}> inserted", args.Node.Name);
if (args.Node.Value != null)
{
Console.WriteLine(" with value {0}", args.Node.Value);
}
else
{
Console.WriteLine("");
}
}
} // End class
Imports System.IO
Imports System.Xml
Namespace Microsoft.Samples.Xml
Public Class Sample
Private Const filename As String = "book.xml"
Public Shared Sub Main()
Dim mySample As Sample = New Sample()
mySample.Run(filename)
End Sub
Public Sub Run(ByVal args As String)
' Create and load the XML document.
Console.WriteLine("Loading file {0} ...", args)
Dim doc As XmlDocument = New XmlDocument()
doc.Load(args)
'Create the event handlers.
AddHandler doc.NodeChanged, AddressOf MyNodeChangedEvent
AddHandler doc.NodeInserted, AddressOf MyNodeInsertedEvent
' Change the book price.
doc.DocumentElement.LastChild.InnerText = "5.95"
' Add a new element.
Dim newElem As XmlElement = doc.CreateElement("style")
newElem.InnerText = "hardcover"
doc.DocumentElement.AppendChild(newElem)
Console.WriteLine()
Console.WriteLine("Display the modified XML...")
Console.WriteLine(doc.OuterXml)
End Sub
' Handle the NodeChanged event.
Private Sub MyNodeChangedEvent(ByVal source As Object, ByVal args As XmlNodeChangedEventArgs)
Console.Write("Node Changed Event: <{0}> changed", args.Node.Name)
If Not (args.Node.Value Is Nothing) Then
Console.WriteLine(" with value {0}", args.Node.Value)
Else
Console.WriteLine("")
End If
End Sub
' Handle the NodeInserted event.
Private Sub MyNodeInsertedEvent(ByVal source As Object, ByVal args As XmlNodeChangedEventArgs)
Console.Write("Node Inserted Event: <{0}> inserted", args.Node.Name)
If Not (args.Node.Value Is Nothing) Then
Console.WriteLine(" with value {0}", args.Node.Value)
Else
Console.WriteLine("")
End If
End Sub
End Class
End Namespace
範例中以該檔案 book.xml 作為輸入。
<!--sample XML fragment-->
<book genre='novel' ISBN='1-861003-78' misc='sale-item'>
<title>The Handmaid's Tale</title>
<price>14.95</price>
</book>
備註
當你建立 XmlNodeChangedEventHandler 代理人時,你會確定處理事件的方法。 要將事件與你的事件處理器關聯,請將該代理的實例加入事件中。 事件處理程序會在事件發生時被呼叫,除非你移除代理。 欲了解更多關於事件處理代理的資訊,請參閱 「處理與提升事件」。
擴充方法
| 名稱 | Description |
|---|---|
| GetMethodInfo(Delegate) |
取得一個代表指定代理所代表方法的物件。 |