XmlNodeEventHandler 代理人
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
代表處理 UnknownNode 事件 XmlSerializer的方法。
public delegate void XmlNodeEventHandler(System::Object ^ sender, XmlNodeEventArgs ^ e);
public delegate void XmlNodeEventHandler(object? sender, XmlNodeEventArgs e);
public delegate void XmlNodeEventHandler(object sender, XmlNodeEventArgs e);
type XmlNodeEventHandler = delegate of obj * XmlNodeEventArgs -> unit
Public Delegate Sub XmlNodeEventHandler(sender As Object, e As XmlNodeEventArgs)
參數
- sender
- Object
事件的 來源。
一個 XmlNodeEventArgs 包含事件資料的 。
範例
以下範例會建立一個 XmlSerializer,為該事件新增一個事件 UnknownNode 處理器,並將物件反序列化。
private void DeserializeItem(string filename) {
XmlSerializer mySerializer =
new XmlSerializer(typeof(ObjectToDeserialize));
// Add an instance of the delegate to the event.
mySerializer.UnknownNode += new XmlNodeEventHandler
(Serializer_UnknownNode);
// A FileStream is needed to read the file to deserialize.
FileStream fs = new FileStream(filename, FileMode.Open);
ObjectToDeserialize o = (ObjectToDeserialize)mySerializer.Deserialize(fs);
}
private void Serializer_UnknownNode
(object sender, XmlNodeEventArgs e) {
Console.WriteLine("UnknownNode Name: "
+ e.Name);
Console.WriteLine("UnknownNode LocalName: "
+ e.LocalName);
Console.WriteLine("UnknownNode Namespace URI: "
+ e.NamespaceURI);
Console.WriteLine("UnknownNode Text: "
+ e.Text);
object o = e.ObjectBeingDeserialized;
Console.WriteLine("Object being deserialized "
+ o.ToString());
XmlNodeType myNodeType = e.NodeType;
Console.WriteLine(myNodeType);
}
Private Sub DeserializeItem(ByVal filename As String)
Dim mySerializer As New XmlSerializer(GetType(ObjectToDeserialize))
' Add an instance of the delegate to the event.
AddHandler mySerializer.UnknownNode, AddressOf Serializer_UnknownNode
' A FileStream is needed to read the file to deserialize.
Dim fs As New FileStream(filename, FileMode.Open)
Dim o As ObjectToDeserialize = _
CType(mySerializer.Deserialize(fs), ObjectToDeserialize)
End Sub
Private Sub Serializer_UnknownNode _
(ByVal sender As Object, _
ByVal e As XmlNodeEventArgs)
Console.WriteLine("UnknownNode Name: " & e.Name)
Console.WriteLine("UnknownNode LocalName: " & e.LocalName)
Console.WriteLine("UnknownNode Namespace URI: " & e.NamespaceURI)
Console.WriteLine("UnknownNode Text: " & e.Text)
Dim o As Object = e.ObjectBeingDeserialized
Console.WriteLine("Object being deserialized " & o.ToString())
Dim myNodeType As XmlNodeType = e.NodeType
Console.WriteLine(myNodeType)
End Sub
備註
當你建立 XmlNodeEventHandler 代理人時,你會確定處理事件的方法。 要將事件與你的事件處理器關聯,請將該代理的實例加入事件中。 事件處理程序會在事件發生時被呼叫,除非你移除代理。 欲了解更多關於事件處理代理的資訊,請參閱 「處理與提升事件」。
UnknownNode事件只會在你呼叫該Deserialize方法時發生。
擴充方法
| 名稱 | Description |
|---|---|
| GetMethodInfo(Delegate) |
取得一個代表指定代理所代表方法的物件。 |