XmlAnyElementAttribute Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menentukan bahwa anggota (bidang yang mengembalikan array XmlElement atau XmlNode objek) berisi objek yang mewakili elemen XML apa pun yang tidak memiliki anggota terkait dalam objek yang diserialisasikan atau dideserialisasi.
public ref class XmlAnyElementAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property | System.AttributeTargets.ReturnValue, AllowMultiple=true)]
public class XmlAnyElementAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property | System.AttributeTargets.ReturnValue, AllowMultiple=true)>]
type XmlAnyElementAttribute = class
inherit Attribute
Public Class XmlAnyElementAttribute
Inherits Attribute
- Warisan
- Atribut
Contoh
Contoh berikut menerapkan ke XmlAnyElementAttribute bidang bernama AllElements
yang mengembalikan array XmlElement objek.
public ref class XClass
{
public:
/* Apply the XmlAnyElementAttribute to a field returning an array
of XmlElement objects. */
[XmlAnyElement]
array<XmlElement^>^AllElements;
};
public ref class Test
{
public:
void DeserializeObject( String^ filename )
{
// Create an XmlSerializer.
XmlSerializer^ mySerializer = gcnew XmlSerializer( XClass::typeid );
// To read a file, a FileStream is needed.
FileStream^ fs = gcnew FileStream( filename,FileMode::Open );
// Deserialize the class.
XClass^ x = dynamic_cast<XClass^>(mySerializer->Deserialize( fs ));
// Read the element names and values.
System::Collections::IEnumerator^ myEnum = x->AllElements->GetEnumerator();
while ( myEnum->MoveNext() )
{
XmlElement^ xel = safe_cast<XmlElement^>(myEnum->Current);
Console::WriteLine( "{0}: {1}", xel->LocalName, xel->Value );
}
}
};
int main()
{
Test^ t = gcnew Test;
t->DeserializeObject( "XFile.xml" );
}
public class XClass
{
/* Apply the XmlAnyElementAttribute to a field returning an array
of XmlElement objects. */
[XmlAnyElement]
public XmlElement[] AllElements;
}
public class Test
{
public static void Main()
{
Test t = new Test();
t.DeserializeObject("XFile.xml");
}
private void DeserializeObject(string filename)
{
// Create an XmlSerializer.
XmlSerializer mySerializer = new XmlSerializer(typeof(XClass));
// To read a file, a FileStream is needed.
FileStream fs = new FileStream(filename, FileMode.Open);
// Deserialize the class.
XClass x = (XClass) mySerializer.Deserialize(fs);
// Read the element names and values.
foreach(XmlElement xel in x.AllElements)
Console.WriteLine(xel.LocalName + ": " + xel.Value);
}
}
Public Class XClass
' Apply the XmlAnyElementAttribute to a field returning an array
' of XmlElement objects.
<XmlAnyElement()> Public AllElements() As XmlElement
End Class
Public Class Test
Public Shared Sub Main()
Dim t As New Test()
t.DeserializeObject("XFile.xml")
End Sub
Private Sub DeserializeObject(filename As String)
' Create an XmlSerializer.
Dim mySerializer As New XmlSerializer(GetType(XClass))
' To read a file, a FileStream is needed.
Dim fs As New FileStream(filename, FileMode.Open)
' Deserialize the class.
Dim x As XClass = CType(mySerializer.Deserialize(fs), XClass)
' Read the element names and values.
Dim xel As XmlElement
For Each xel In x.AllElements
Console.WriteLine((xel.LocalName & ": " & xel.Value))
Next xel
End Sub
End Class
Keterangan
Tip
Saat bekerja di pustaka kelas portabel, seperti di Silverlight, Windows Phone, atau proyek Aplikasi Windows Store, dan Anda menggunakan .NET Framework 4.0.3 ke atas, gunakan XElement atau XNode sebagai ganti XmlElement dan XmlNode.
XmlAnyElementAttribute Gunakan untuk berisi data arbitrer (sebagai elemen XML) yang dapat dikirim sebagai bagian dari dokumen XML, seperti metadata yang dikirim sebagai bagian dari dokumen.
Terapkan ke XmlAnyElementAttribute bidang yang mengembalikan array XmlElement objek atau XmlNode . Bidang seperti itu dapat digunakan dengan dua cara, tergantung pada apakah objek sedang diserialisasikan atau dideserialisasi. Saat diserialisasikan, objek dihasilkan sebagai elemen xml atau simpul, meskipun tidak memiliki anggota (atau anggota) yang sesuai dalam objek yang diserialisasikan. Jika Anda menentukan Name nilai properti saat menerapkan atribut , semua XmlElement atau XmlNode objek yang dimasukkan ke dalam array harus memiliki nama elemen dan namespace default yang sama, atau pengecualian dilemparkan. Jika Anda mengatur Namespace nilai properti, Anda juga harus mengatur Name properti , dan XmlElement objek atau XmlNode juga harus memiliki nama dan nilai namespace yang sama. Jika tidak ada Name nilai yang ditentukan, XmlElement objek atau XmlNode dapat memiliki nama elemen apa pun.
Saat Anda memanggil Deserialize metode XmlSerializer kelas , semua elemen yang tidak memiliki anggota yang sesuai dalam objek yang dideserialisasi dikumpulkan dalam array. Setelah deserialisasi, ulangi pengumpulan XmlElement item untuk memproses data. Jika Anda menentukan Name nilai, array hanya berisi elemen XML dengan nama tersebut. Jika Anda tidak menentukan Name nilai, array berisi semua elemen yang tidak memiliki anggota terkait di kelas . Jika kelas berisi lebih dari satu bidang tempat atribut diterapkan, gunakan Nameproperti , atau Name dan Namespace untuk membedakan antara konten array. Jika kelas seperti itu (dengan beberapa bidang) juga berisi satu bidang yang tidak memiliki set nilai properti pembeda (dengan kata lain, Name dan Namespace) selama deserialisasi, array ini berisi elemen XML yang tidak diketahui yang belum terkandung dalam array lain. Jika kelas berisi lebih dari satu bidang yang tidak memiliki set nilai yang membedakan Name, atau Name dan Namespace , perilaku selama deserialisasi tidak ditentukan.
Anda juga dapat menerapkan ke XmlAnyElementAttribute bidang yang mengembalikan satu XmlElement objek. Jika Anda melakukannya, Anda harus menggunakan properti dan metode XmlElement kelas untuk melakukan iterasi secara rekursif melalui elemen yang tidak diketahui.
Anda dapat menerapkan beberapa instans XmlAnyElementAttribute ke anggota kelas, tetapi setiap instans harus memiliki nilai properti yang berbeda Name . Atau, jika properti yang sama Name diatur untuk setiap instans, nilai properti yang berbeda Namespace harus diatur untuk setiap instans.
Peristiwa UnknownNodeXmlSerializer dan UnknownAttribute tidak terjadi jika Anda menerapkannya XmlAnyElementAttribute ke anggota kelas.
Catatan
Anda dapat menggunakan kata XmlAnyElement
dalam kode Anda alih-alih lebih lama XmlAnyElementAttribute.
Untuk informasi selengkapnya tentang menggunakan atribut, lihat Atribut.
Konstruktor
XmlAnyElementAttribute() |
Menginisialisasi instans baru kelas XmlAnyElementAttribute. |
XmlAnyElementAttribute(String) |
Menginisialisasi instans XmlAnyElementAttribute baru kelas dan menentukan nama elemen XML yang dihasilkan dalam dokumen XML. |
XmlAnyElementAttribute(String, String) |
Menginisialisasi instans XmlAnyElementAttribute baru kelas dan menentukan nama elemen XML yang dihasilkan dalam dokumen XML dan namespace XML-nya. |
Properti
Name |
Mendapatkan atau mengatur nama elemen XML. |
Namespace |
Mendapatkan atau mengatur namespace XML yang dihasilkan dalam dokumen XML. |
Order |
Mendapatkan atau mengatur urutan eksplisit di mana elemen diserialisasikan atau dideserialisasi. |
TypeId |
Ketika diimplementasikan di kelas turunan, mendapatkan pengidentifikasi unik untuk ini Attribute. (Diperoleh dari Attribute) |
Metode
Equals(Object) |
Mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu. (Diperoleh dari Attribute) |
GetHashCode() |
Mengembalikan kode hash untuk instans ini. (Diperoleh dari Attribute) |
GetType() |
Mendapatkan instans Type saat ini. (Diperoleh dari Object) |
IsDefaultAttribute() |
Ketika ditimpa di kelas turunan, menunjukkan apakah nilai instans ini adalah nilai default untuk kelas turunan. (Diperoleh dari Attribute) |
Match(Object) |
Saat ditimpa di kelas turunan, mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu. (Diperoleh dari Attribute) |
MemberwiseClone() |
Membuat salinan dangkal dari yang saat ini Object. (Diperoleh dari Object) |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
Implementasi Antarmuka Eksplisit
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Memetakan sekumpulan nama ke sekumpulan pengidentifikasi pengiriman yang sesuai. (Diperoleh dari Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Mengambil informasi jenis untuk objek, yang dapat digunakan untuk mendapatkan informasi jenis untuk antarmuka. (Diperoleh dari Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Mengambil jumlah antarmuka informasi jenis yang disediakan objek (baik 0 atau 1). (Diperoleh dari Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Menyediakan akses ke properti dan metode yang diekspos oleh objek. (Diperoleh dari Attribute) |