XmlAttributeEventHandler Delegat
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt die Methode dar, die die UnknownAttribute.
public delegate void XmlAttributeEventHandler(System::Object ^ sender, XmlAttributeEventArgs ^ e);
public delegate void XmlAttributeEventHandler(object sender, XmlAttributeEventArgs e);
type XmlAttributeEventHandler = delegate of obj * XmlAttributeEventArgs -> unit
Public Delegate Sub XmlAttributeEventHandler(sender As Object, e As XmlAttributeEventArgs)
Parameter
- sender
- Object
Die Quelle des Ereignisses.
Eine XmlAttributeEventArgs , die die Ereignisdaten enthält.
Beispiele
Im folgenden Beispiel wird eine Klasse, die aus einer Datei mit dem Namen UnknownAttributes.xmlbenannt Group ist, deserialisiert. Wenn ein Element in der Datei gefunden wird, das kein entsprechendes Element in der Klasse enthält, tritt das UnknownAttribute Ereignis auf. Zum Testen des Beispiels fügen Sie den folgenden XML-Code in eine Datei mit dem Namen UnknownAttributes.xmlein.
<?xml version="1.0" encoding="utf-8"?>
<Group xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" GroupType = 'Technical' GroupNumber = '42' GroupBase = 'Red'>
<GroupName>MyGroup</GroupName>
</Group>
using System;
using System.IO;
using System.Xml.Serialization;
using System.Xml;
using System.Xml.Schema;
public class Group{
public string GroupName;
}
public class Test{
static void Main(){
Test t = new Test();
// Deserialize the file containing unknown elements.
t.DeserializeObject("UnknownAttributes.xml");
}
private void Serializer_UnknownAttribute(object sender, XmlAttributeEventArgs e){
Console.WriteLine("Unknown Attribute");
Console.WriteLine("\t" + e.Attr.Name + " " + e.Attr.InnerXml);
Console.WriteLine("\t LineNumber: " + e.LineNumber);
Console.WriteLine("\t LinePosition: " + e.LinePosition);
Group x = (Group) e.ObjectBeingDeserialized;
Console.WriteLine (x.GroupName);
Console.WriteLine (sender.ToString());
}
private void DeserializeObject(string filename){
XmlSerializer ser = new XmlSerializer(typeof(Group));
// Add a delegate to handle unknown element events.
ser.UnknownAttribute+=new XmlAttributeEventHandler(Serializer_UnknownAttribute);
// A FileStream is needed to read the XML document.
FileStream fs = new FileStream(filename, FileMode.Open);
Group g = (Group) ser.Deserialize(fs);
fs.Close();
}
}
Imports System.IO
Imports System.Xml.Serialization
Imports System.Xml
Imports System.Xml.Schema
Public Class Group
Public GroupName As String
End Class
Public Class Test
Shared Sub Main()
Dim t As Test = new Test()
' Deserialize the file containing unknown elements.
t.DeserializeObject("UnknownAttributes.xml")
End Sub
Private Sub Serializer_UnknownAttribute _
(sender As Object , e As XmlAttributeEventArgs)
Console.WriteLine("Unknown Attribute")
Console.WriteLine(ControlChars.Tab & e.Attr.Name + " " & e.Attr.InnerXml)
Console.WriteLine(ControlChars.Tab & e.LineNumber & ":" & e.LineNumber)
Console.WriteLine(ControlChars.Tab & e.LinePosition & ":" & e.LinePosition)
Dim x As Group = CType( e.ObjectBeingDeserialized, Group)
Console.WriteLine (x.GroupName)
Console.WriteLine (sender.ToString())
End Sub
Private Sub DeserializeObject(filename As String)
Dim ser As XmlSerializer = new XmlSerializer(GetType(Group))
' Add a delegate to handle unknown element events.
AddHandler ser.UnknownAttribute, _
AddressOf Serializer_UnknownAttribute
' A FileStream is needed to read the XML document.
Dim fs As FileStream = new FileStream(filename, FileMode.Open)
Dim g As Group = CType(ser.Deserialize(fs),Group)
fs.Close()
End Sub
End Class
Hinweise
Wenn Sie einen XmlAttributeEventHandler Delegaten erstellen, identifizieren Sie die Methode, die das Ereignis behandelt. Um das Ereignis dem Ereignishandler zuzuordnen, fügen Sie dem Ereignis eine Instanz des Delegaten hinzu. Der Ereignishandler wird immer dann aufgerufen, wenn das Ereignis auftritt, es sei denn, Sie entfernen den Delegaten. Weitere Informationen zu Ereignishandlerdelegatn finden Sie unter Behandeln und Auslösen von Ereignissen.
Das UnknownAttribute Ereignis tritt nur auf, wenn ein Objekt mit der Deserialize Methode deserialisiert wird.
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| GetMethodInfo(Delegate) |
Ruft ein Objekt ab, das die vom angegebenen Delegaten dargestellte Methode darstellt. |
Gilt für:
Weitere Informationen
- XmlNodeEventHandler
- Deserialize(Stream)
- XmlSerializer
- XmlAttributes
- Einführung in die XML-Serialisierung
- Vorgehensweise: Angeben eines alternativen Elementnamens für einen XML-Stream
- Steuern der XML-Serialisierung mithilfe von Attributen
- Beispiele für die XML-Serialisierung
- XML Schema Definition-Tool (Xsd.exe)