XmlNodeEventHandler Delegasikan
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mewakili metode yang menangani UnknownNode peristiwa 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)
Parameter
- sender
- Object
Sumber dari peristiwa tersebut.
Yang XmlNodeEventArgs berisi data peristiwa.
Contoh
Contoh berikut membuat XmlSerializer, menambahkan penanganan aktivitas untuk UnknownNode peristiwa, dan mendeserialisasi objek.
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
Keterangan
Saat membuat XmlNodeEventHandler delegasi, Anda mengidentifikasi metode yang menangani peristiwa. Untuk mengaitkan peristiwa dengan penanganan aktivitas Anda, tambahkan instans delegasi ke peristiwa. Penanganan aktivitas dipanggil setiap kali peristiwa terjadi, kecuali Jika Anda menghapus delegasi. Untuk informasi selengkapnya tentang delegasi penanganan aktivitas, lihat Menangani dan Meningkatkan Peristiwa.
Peristiwa UnknownNode hanya terjadi ketika Anda memanggil Deserialize metode .
Metode Ekstensi
GetMethodInfo(Delegate) |
Mendapatkan objek yang mewakili metode yang diwakili oleh delegasi yang ditentukan. |