XObjectChange Enumeration

Definition

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
XObjectChange

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.

Gilt für:

Weitere Informationen