XObjectChange Enum

Definisi

Menentukan jenis peristiwa saat peristiwa dinaikkan untuk XObject.

public enum class XObjectChange
public enum XObjectChange
type XObjectChange = 
Public Enum XObjectChange
Warisan
XObjectChange

Bidang

Add 0

XObject telah atau akan ditambahkan ke XContainer.

Name 2

XObject telah atau akan diganti namanya.

Remove 1

XObject telah atau akan dihapus dari XContainer.

Value 3

Nilai dari telah XObject atau akan diubah. Selain itu, perubahan serialisasi elemen kosong (baik dari tag kosong ke pasangan tag awal/akhir atau sebaliknya) memunculkan peristiwa ini.

Contoh

Contoh berikut menaikkan peristiwa dengan menambahkan elemen ke pohon.

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

Contoh ini mencetak output berikut:

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

Contoh berikut memunculkan peristiwa dengan menghapus elemen dari pohon.

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

Contoh ini mencetak output berikut:

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

Contoh berikut memunculkan peristiwa dengan mengubah nama elemen.

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

Contoh ini mencetak output berikut:

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

Contoh berikut menaikkan peristiwa dengan mengatur nilai atribut.

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

Contoh ini mencetak output berikut:

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

Keterangan

Ini enum menentukan jenis peristiwa ketika peristiwa dinaikkan untuk XObject.

Semua operasi yang memodifikasi pohon XML diuraikan ke serangkaian primitif. Ada empat jenis primitif. Dua primitif (Tambahkan dan Hapus) bertindak pada koleksi. Dua di antaranya (Nama dan Nilai) bertindak berdasarkan instans. Ada peristiwa yang sesuai untuk masing-masing primitif ini.

Anda harus berhati-hati saat memodifikasi pohon XML dalam salah satu peristiwa ini, karena melakukan ini dapat menyebabkan hasil yang tidak terduga. Misalnya, jika Anda menerima Changing peristiwa, dan saat peristiwa sedang diproses, Anda menghapus simpul dari pohon, Anda mungkin tidak menerima peristiwa tersebut Changed . Saat peristiwa sedang diproses, valid untuk memodifikasi pohon XML selain yang berisi simpul yang menerima peristiwa; bahkan valid untuk memodifikasi pohon yang sama asalkan modifikasi tidak memengaruhi simpul tertentu tempat peristiwa dinaikkan. Namun, jika Anda memodifikasi area pohon yang berisi simpul yang menerima peristiwa, peristiwa yang Anda terima dan dampaknya ke pohon tidak ditentukan.

Berlaku untuk

Lihat juga