Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Enumerazione XObjectChange

 

Data di pubblicazione: ottobre 2016

Specifica il tipo di evento quando viene generato un evento per un oggetto XObject.

Spazio dei nomi:   System.Xml.Linq
Assembly:  System.Xml.Linq (in System.Xml.Linq.dll)

public enum XObjectChange

Nome membroDescrizione
Add

Un XObject è stata o verrà aggiunto a un XContainer.

Name

Un XObject è stata o verrà rinominato.

Remove

Un XObject è stata o verrà rimossa da un XContainer.

Value

Il valore di un XObject è stata o verrà modificato. Inoltre, una modifica nella serializzazione di un elemento vuoto (sia da un tag di inizio/fine tag coppia o vice versa vuoto) genera questo evento.

Questo enum Specifica il tipo di evento quando viene generato un evento per un XObject.

Tutte le operazioni che modificano l'albero XML suddividere a una serie di tipi primitivi. Esistono quattro tipi di primitive. Due primitivi (Aggiungi e Rimuovi) agiscono su raccolte. Due di essi (nome e valore) agiscono sulle istanze. Esiste un evento corrispondente per ognuno di questi tipi primitivi.

È necessario prestare attenzione quando si modifica un albero XML all'interno di uno di questi eventi, poiché ciò potrebbe provocare risultati imprevisti. Ad esempio, se si riceve un Changing evento e durante l'elaborazione dell'evento per rimuovere il nodo dell'albero, si potrebbe non ricevere la Changed evento. Durante l'elaborazione di un evento, è possibile modificare un albero XML diverso da quello che contiene il nodo che riceve l'evento. è anche possibile modificare lo stessa struttura ad albero, purché le modifiche non influiscono sui nodi specifici in cui è stato generato l'evento. Tuttavia, se si modifica l'area della struttura che contiene il nodo che riceve l'evento, gli eventi che viene visualizzato e l'impatto dell'albero sono indefiniti.

Nell'esempio seguente genera un evento aggiungendo un elemento alla struttura ad albero.


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

Questo esempio produce il seguente output:

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

Nell'esempio seguente genera un evento tramite la rimozione di un elemento nell'albero.


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

Questo esempio produce il seguente output:

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

Nell'esempio seguente genera un evento modificando il nome di un elemento.


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

Questo esempio produce il seguente output:

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

Nell'esempio seguente genera un evento, impostando il valore di un attributo.


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

Questo esempio produce il seguente output:

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

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 3.5
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: