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
| Name | Wert | Beschreibung |
|---|---|---|
| Add | 0 | Ein XObject Objekt wurde oder wird zu einem XContainerhinzugefügt. |
| Remove | 1 | Ein XObject Element wurde oder wird aus einem XContainerentfernt. |
| Name | 2 | Es XObject wurde oder wird umbenannt. |
| Value | 3 | Der Wert einer XObject Änderung wurde oder wird geändert. Darüber hinaus löst eine Änderung der Serialisierung eines leeren Elements (entweder von einem leeren Tag zum Start-/End-Tag-Paar oder umgekehrt) dieses Ereignis aus. |
Beispiele
Im folgenden Beispiel wird ein Ereignis ausgelöst, indem der Struktur ein Element 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 zerbrochen. Es gibt vier Typen von Grundtypen. Zwei der Grundtypen (Hinzufügen und Entfernen) wirken auf Auflistungen. Zwei davon (Name und Wert) wirken auf Instanzen. Es gibt ein entsprechendes Ereignis für jeden dieser Grundtypen.
Sie sollten beim Ändern einer XML-Struktur innerhalb eines dieser Ereignisse vorsichtig sein, da dies zu unerwarteten Ergebnissen führen kann. Wenn Sie beispielsweise ein Changing Ereignis empfangen 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, vorausgesetzt, die Änderungen wirken sich nicht auf die spezifischen Knoten aus, 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, sind die empfangenen Ereignisse und die Auswirkungen auf die Struktur nicht definiert.