Sdílet prostřednictvím


XmlNodeEventHandler Delegát

Definice

Představuje metodu, která zpracovává UnknownNode událost objektu 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)

Parametry

sender
Object

Zdroj události

e
XmlNodeEventArgs

Objekt XmlNodeEventArgs , který obsahuje data události.

Příklady

Následující příklad vytvoří XmlSerializer, přidá obslužnou rutinu UnknownNode události pro událost a deserializuje objekt.

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(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

Poznámky

Při vytváření delegáta XmlNodeEventHandler identifikujete metodu, která zpracovává událost. Pokud chcete událost přidružit k obslužné rutině události, přidejte do události instanci delegáta. Obslužná rutina události je volána při každém výskytu události, dokud neodeberete delegáta. Další informace o delegátech obslužné rutiny událostí najdete v tématu Zpracování a vyvolávání událostí.

Událost UnknownNode nastane pouze při volání Deserialize metody.

Metody rozšíření

GetMethodInfo(Delegate)

Získá objekt, který představuje metodu reprezentovanou zadaným delegátem.

Platí pro

Viz také