XObjectChange Énumération
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Spécifie le type d’événement lorsqu’un événement est déclenché pour un XObject.
public enum class XObjectChange
public enum XObjectChange
type XObjectChange =
Public Enum XObjectChange
- Héritage
Champs
| Nom | Valeur | Description |
|---|---|---|
| Add | 0 | Un XObject a été ou sera ajouté à un XContainer. |
| Remove | 1 | Un XObject a été ou sera supprimé d’un XContainer. |
| Name | 2 | Un XObject nom a été ou sera renommé. |
| Value | 3 | La valeur d’un XObject élément a été ou sera modifiée. En outre, une modification de la sérialisation d’un élément vide (d’une balise vide à la paire d’étiquettes de début/fin ou vice versa) déclenche cet événement. |
Exemples
L’exemple suivant déclenche un événement en ajoutant un élément à l’arborescence.
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"));
Cet exemple produit la sortie suivante :
Changing event raised
Sender: System.Xml.Linq.XElement
Changing: Add
Changed event raised
Sender: System.Xml.Linq.XElement
Changed: Add
L’exemple suivant déclenche un événement en supprimant un élément de l’arborescence.
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();
Cet exemple produit la sortie suivante :
Changing event raised
Sender: System.Xml.Linq.XElement
Changing: Remove
Changed event raised
Sender: System.Xml.Linq.XElement
Changed: Remove
L’exemple suivant déclenche un événement en modifiant le nom d’un élément.
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";
Cet exemple produit la sortie suivante :
Changing event raised
Sender: System.Xml.Linq.XElement
Changing: Name
Changed event raised
Sender: System.Xml.Linq.XElement
Changed: Name
L’exemple suivant déclenche un événement en définissant la valeur d’un attribut.
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";
Cet exemple produit la sortie suivante :
Changing event raised
Sender: System.Xml.Linq.XAttribute
Changing: Value
Changed event raised
Sender: System.Xml.Linq.XAttribute
Changed: Value
Remarques
Cela enum spécifie le type d’événement lorsqu’un événement est déclenché pour un XObject.
Toutes les opérations qui modifient l’arborescence XML se décomposent en une série de primitives. Il existe quatre types de primitives. Deux des primitives (Add and Remove) agissent sur les collections. Deux d’entre eux (Nom et Valeur) agissent sur des instances. Il existe un événement correspondant pour chacune de ces primitives.
Vous devez être prudent lors de la modification d’une arborescence XML dans l’un de ces événements, car cela peut entraîner des résultats inattendus. Par exemple, si vous recevez un Changing événement et que l’événement est en cours de traitement, vous supprimez le nœud de l’arborescence, vous risquez de ne pas recevoir l’événement Changed . Lorsqu’un événement est traité, il est valide de modifier une arborescence XML autre que celle qui contient le nœud qui reçoit l’événement ; il est même valide de modifier la même arborescence, à condition que les modifications n’affectent pas les nœuds spécifiques sur lesquels l’événement a été déclenché. Toutefois, si vous modifiez la zone de l’arborescence qui contient le nœud qui reçoit l’événement, les événements que vous recevez et l’impact sur l’arborescence ne sont pas définis.