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 objet XObject.
public enum class XObjectChange
public enum XObjectChange
type XObjectChange =
Public Enum XObjectChange
- Héritage
Champs
Add | 0 | Un XObject a été ou va être ajouté à un XContainer. |
Name | 2 | Un XObject a été ou va être renommé. |
Remove | 1 | Un XObject a été ou va être supprimé d'un XContainer. |
Value | 3 | La valeur d'un XObject a été ou va être modifiée. De plus, une modification de la sérialisation d'un élément vide (d'une balise vide vers une paire de balises démarrer/arrêter ou inversement) 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 (Ajouter et Supprimer) agissent sur les collections. Deux d’entre eux (Nom et Valeur) agissent sur les 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 pendant le traitement de l’événement, vous supprimez le nœud de l’arborescence, il se peut que vous ne receviez pas l’événement Changed . Lorsqu’un événement est en cours de traitement, 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 recevant l’événement, les événements que vous recevez et l’impact sur l’arborescence ne sont pas définis.