XObjectChange Výčet

Definice

Určuje typ události při vyvolání události pro objekt .XObject

public enum class XObjectChange
public enum XObjectChange
type XObjectChange = 
Public Enum XObjectChange
Dědičnost
XObjectChange

Pole

Name Hodnota Description
Add 0

Byla XObject nebo bude přidána do objektu XContainer.

Remove 1

Byl XObject nebo bude odebrán z objektu XContainer.

Name 2

Byl XObject nebo bude přejmenován.

Value 3

Hodnota XObject byla nebo bude změněna. Kromě toho změna serializace prázdného elementu (buď z prázdné značky na počáteční/koncový pár značek, nebo naopak) vyvolá tuto událost.

Příklady

Následující příklad vyvolá událost přidáním elementu do stromu.

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"));  

Tento příklad vytvoří následující výstup:

Changing event raised  
  Sender: System.Xml.Linq.XElement  
  Changing: Add  
Changed event raised  
  Sender: System.Xml.Linq.XElement  
  Changed: Add  

Následující příklad vyvolá událost odebráním elementu ze stromu.

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();  

Tento příklad vytvoří následující výstup:

Changing event raised  
  Sender: System.Xml.Linq.XElement  
  Changing: Remove  
Changed event raised  
  Sender: System.Xml.Linq.XElement  
  Changed: Remove  

Následující příklad vyvolá událost změnou názvu elementu.

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";  

Tento příklad vytvoří následující výstup:

Changing event raised  
  Sender: System.Xml.Linq.XElement  
  Changing: Name  
Changed event raised  
  Sender: System.Xml.Linq.XElement  
  Changed: Name  

Následující příklad vyvolá událost nastavením hodnoty atributu.

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";  

Tento příklad vytvoří následující výstup:

Changing event raised  
  Sender: System.Xml.Linq.XAttribute  
  Changing: Value  
Changed event raised  
  Sender: System.Xml.Linq.XAttribute  
  Changed: Value  

Poznámky

Určuje enum typ události při vyvolání události pro XObjectobjekt .

Všechny operace, které upravují strom XML, se rozdělí na řadu primitiv. Existují čtyři typy primitiv. Dva z primitiv (Přidat a odebrat) fungují s kolekcemi. Dva z nich (Název a Hodnota) fungují s instancemi. Pro každou z těchto primitiv existuje odpovídající událost.

Při úpravě stromu XML v rámci jedné z těchto událostí byste měli být opatrní, protože to může vést k neočekávaným výsledkům. Pokud například obdržíte Changing událost a během zpracování události odeberete uzel ze stromu, nemusí se událost zobrazit Changed . Při zpracování události je platná změna stromu XML jiného než ten, který obsahuje uzel, který přijímá událost; je dokonce platné upravit stejný strom za předpokladu, že změny nemají vliv na konkrétní uzly, na kterých byla událost vyvolána. Pokud ale upravíte oblast stromu, která obsahuje uzel přijímající událost, události, které obdržíte, a dopad na strom není definován.

Platí pro

Viz také