XObjectChange Enumeration
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.
Gibt den Ereignistyp an, wenn ein Ereignis für ein XObject ausgelöst wird.
public enum class XObjectChange
public enum XObjectChange
type XObjectChange =
Public Enum XObjectChange
- Vererbung
Felder
Add | 0 | Einem XObject wurde oder wird ein XContainer hinzugefügt. |
Name | 2 | Ein XObject wurde oder wird umbenannt. |
Remove | 1 | Ein XObject wurde oder wird aus einem XContainer entfernt. |
Value | 3 | Der Wert eines XObject wurde oder wird geändert. Darüber hinaus wird dieses Ereignis durch eine Änderung der Serialisierung eines leeren Elements (entweder aus einem leeren Tag in ein Starttag-Endtag-Paar oder umgekehrt) ausgelöst. |
Beispiele
Im folgenden Beispiel wird ein Ereignis ausgelöst, indem ein Element zur Struktur hinzugefügt wird.
XElement root = new XElement("Root", "content");
root.Changing += (sender, e) =>
{
Console.WriteLine("Changing event raised");
Console.WriteLine(" Sender: " + sender.GetType());
Console.WriteLine(" Changing: " + e.ObjectChange);
};
root.Changed += (sender, e) =>
{
Console.WriteLine("Changed event raised");
Console.WriteLine(" Sender: " + sender.GetType());
Console.WriteLine(" Changed: " + e.ObjectChange);
};
root.Add(new XElement("Child", "child content"));
Dieses Beispiel erzeugt die folgende Ausgabe:
Changing event raised
Sender: System.Xml.Linq.XElement
Changing: Add
Changed event raised
Sender: System.Xml.Linq.XElement
Changed: Add
Im folgenden Beispiel wird ein Ereignis ausgelöst, indem ein Element aus der Struktur entfernt wird.
XElement root = new XElement("Root",
new XElement("Child", "content")
);
root.Changing += (sender, e) =>
{
Console.WriteLine("Changing event raised");
Console.WriteLine(" Sender: " + sender.GetType());
Console.WriteLine(" Changing: " + e.ObjectChange);
};
root.Changed += (sender, e) =>
{
Console.WriteLine("Changed event raised");
Console.WriteLine(" Sender: " + sender.GetType());
Console.WriteLine(" Changed: " + e.ObjectChange);
};
root.Element("Child").Remove();
Dieses Beispiel erzeugt die folgende Ausgabe:
Changing event raised
Sender: System.Xml.Linq.XElement
Changing: Remove
Changed event raised
Sender: System.Xml.Linq.XElement
Changed: Remove
Im folgenden Beispiel wird ein Ereignis ausgelöst, indem der Name eines Elements geändert wird.
XElement root = new XElement("Root", "content");
root.Changing += (sender, e) =>
{
Console.WriteLine("Changing event raised");
Console.WriteLine(" Sender: " + sender.GetType());
Console.WriteLine(" Changing: " + e.ObjectChange);
};
root.Changed += (sender, e) =>
{
Console.WriteLine("Changed event raised");
Console.WriteLine(" Sender: " + sender.GetType());
Console.WriteLine(" Changed: " + e.ObjectChange);
};
root.Name = "NewName";
Dieses Beispiel erzeugt die folgende Ausgabe:
Changing event raised
Sender: System.Xml.Linq.XElement
Changing: Name
Changed event raised
Sender: System.Xml.Linq.XElement
Changed: Name
Im folgenden Beispiel wird ein Ereignis ausgelöst, indem der Wert eines Attributs festgelegt wird.
XElement root = new XElement("Root",
new XAttribute("Att", "att value")
);
root.Changing += (sender, e) =>
{
Console.WriteLine("Changing event raised");
Console.WriteLine(" Sender: " + sender.GetType());
Console.WriteLine(" Changing: " + e.ObjectChange);
};
root.Changed += (sender, e) =>
{
Console.WriteLine("Changed event raised");
Console.WriteLine(" Sender: " + sender.GetType());
Console.WriteLine(" Changed: " + e.ObjectChange);
};
root.FirstAttribute.Value = "new contents";
Dieses Beispiel erzeugt die folgende Ausgabe:
Changing event raised
Sender: System.Xml.Linq.XAttribute
Changing: Value
Changed event raised
Sender: System.Xml.Linq.XAttribute
Changed: Value
Hinweise
Dadurch enum
wird der Ereignistyp angegeben, wenn ein Ereignis für ein XObjectEreignis ausgelöst wird.
Alle Vorgänge, die die XML-Struktur ändern, werden in eine Reihe von Grundtypen aufgebrochen. Es gibt vier Typen von Grundtypen. Zwei der Grundtypen (Hinzufügen und Entfernen) wirken auf Auflistungen. Zwei davon (Name und Wert) handeln auf Instanzen. Für jeden dieser Grundtypen gibt es ein entsprechendes Ereignis.
Sie sollten vorsichtig sein, wenn Sie eine XML-Struktur innerhalb eines dieser Ereignisse ändern, da dies zu unerwarteten Ergebnissen führen kann. Wenn Sie z. B. ein Changing Ereignis erhalten und das Ereignis verarbeitet wird, entfernen Sie den Knoten möglicherweise nicht Changed aus der Struktur. Wenn ein Ereignis verarbeitet wird, ist es gültig, eine andere XML-Struktur zu ändern als die, die den Knoten enthält, der das Ereignis empfängt; Es ist sogar gültig, die gleiche Struktur zu ändern, sofern sich die Änderungen nicht auf die spezifischen Knoten auswirken, auf denen das Ereignis ausgelöst wurde. Wenn Sie jedoch den Bereich der Struktur ändern, der den Knoten enthält, der das Ereignis empfängt, werden die empfangenen Ereignisse und die Auswirkungen auf die Struktur nicht definiert.