Freigeben über


XmlNodeEventHandler-Delegat

Stellt die Methode dar, die das UnknownNode-Ereignis einer XmlSerializer behandelt.

Namespace: System.Xml.Serialization
Assembly: System.Xml (in system.xml.dll)

Syntax

'Declaration
Public Delegate Sub XmlNodeEventHandler ( _
    sender As Object, _
    e As XmlNodeEventArgs _
)
'Usage
Dim instance As New XmlNodeEventHandler(AddressOf HandlerMethod)
public delegate void XmlNodeEventHandler (
    Object sender,
    XmlNodeEventArgs e
)
public delegate void XmlNodeEventHandler (
    Object^ sender, 
    XmlNodeEventArgs^ e
)
/** @delegate */
public delegate void XmlNodeEventHandler (
    Object sender, 
    XmlNodeEventArgs e
)
JScript unterstützt die Verwendung von Delegaten, aber nicht die Deklaration von neuen Delegaten.

Parameter

  • sender
    Die Quelle des Ereignisses.

Hinweise

Beim Erstellen eines XmlNodeEventHandler-Delegaten bestimmen Sie die Methode für die Ereignisbehandlung. Um das Ereignis dem Ereignishandler zuzuordnen, fügen Sie dem Ereignis eine Instanz des Delegaten hinzu. Der Ereignishandler wird bei jedem Eintreten des Ereignisses aufgerufen, sofern der Delegat nicht entfernt wird. Weitere Informationen über Ereignishandlerdelegaten finden Sie unter Ereignisse und Delegaten.

Das UnknownNode-Ereignis tritt nur bei einem Aufruf der Deserialize-Methode ein.

Beispiel

Im folgenden Beispiel wird ein XmlSerializer erstellt, ein Handler für das UnknownNode-Ereignis hinzugefügt und ein Objekt deserialisiert.

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 'DeserializeItem


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
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:
   void DeserializeItem( String^ filename )
   {
      XmlSerializer^ mySerializer = gcnew XmlSerializer( ObjectToDeserialize::typeid );

      // Add an instance of the delegate to the event.
      mySerializer->UnknownNode += gcnew XmlNodeEventHandler( this, &Class1::Serializer_UnknownNode );

      // A FileStream is needed to read the file to deserialize.
      FileStream^ fs = gcnew FileStream( filename,FileMode::Open );
      ObjectToDeserialize^ o = dynamic_cast<ObjectToDeserialize^>(mySerializer->Deserialize( fs ));
   }

   void Serializer_UnknownNode( Object^ sender, XmlNodeEventArgs^ e )
   {
      Console::WriteLine( "UnknownNode Name: {0}", e->Name );
      Console::WriteLine( "UnknownNode LocalName: {0}", e->LocalName );
      Console::WriteLine( "UnknownNode Namespace URI: {0}", e->NamespaceURI );
      Console::WriteLine( "UnknownNode Text: {0}", e->Text );
      Object^ o = e->ObjectBeingDeserialized;
      Console::WriteLine( "Object being deserialized {0}", o );
      XmlNodeType myNodeType = e->NodeType;
      Console::WriteLine( myNodeType );
   }
private void DeserializeItem(String fileName)
{
    XmlSerializer mySerializer =
        new XmlSerializer(ObjectToDeserialize.class.ToType());

    // Add an instance of the delegate to the event.
    mySerializer.add_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);
} //DeserializeItem

protected void Serializer_UnknownNode(Object sender, XmlNodeEventArgs e)
{
    Console.WriteLine("UnknownNode Name: " + e.get_Name());
    Console.WriteLine("UnknownNode LocalName: " + e.get_LocalName());
    Console.WriteLine("UnknownNode Namespace URI: " + e.get_NamespaceURI());
    Console.WriteLine("UnknownNode Text: " + e.get_Text());

    Object o = e.get_ObjectBeingDeserialized();
    Console.WriteLine("Object being deserialized " + o.ToString());

    XmlNodeType myNodeType = e.get_NodeType();
    Console.WriteLine(myNodeType);
} //Serializer_UnknownNode

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0

Siehe auch

Referenz

System.Xml.Serialization-Namespace
Deserialize
XmlSerializer