XmlArrayItemAttribute 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.
Mewakili atribut yang menentukan jenis turunan yang dapat ditempatkan XmlSerializer dalam array berseri.
public ref class XmlArrayItemAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property | System.AttributeTargets.ReturnValue, AllowMultiple=true)]
public class XmlArrayItemAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property | System.AttributeTargets.ReturnValue, AllowMultiple=true)>]
type XmlArrayItemAttribute = class
inherit Attribute
Public Class XmlArrayItemAttribute
Inherits Attribute
- Warisan
- Atribut
Contoh
Contoh berikut menserialisasikan kelas bernama Group yang berisi bidang bernama Employees yang mengembalikan array Employee objek. Contoh menerapkan ke bidang , sehingga menginstruksikan XmlArrayItemAttributeXmlSerializer bahwa ia dapat menyisipkan objek dari jenis kelas dasar (Employee) dan jenis kelas turunan (Manager) ke dalam array berseri.
using System;
using System.IO;
using System.Xml.Serialization;
public class Group
{
/* The XmlArrayItemAttribute allows the XmlSerializer to insert
both the base type (Employee) and derived type (Manager)
into serialized arrays. */
[XmlArrayItem(typeof(Manager)),
XmlArrayItem(typeof(Employee))]
public Employee[] Employees;
/* Use the XmlArrayItemAttribute to specify types allowed
in an array of Object items. */
[XmlArray]
[XmlArrayItem (typeof(int),
ElementName = "MyNumber"),
XmlArrayItem (typeof(string),
ElementName = "MyString"),
XmlArrayItem(typeof(Manager))]
public object [] ExtraInfo;
}
public class Employee
{
public string Name;
}
public class Manager:Employee{
public int Level;
}
public class Run
{
public static void Main()
{
Run test = new Run();
test.SerializeObject("TypeDoc.xml");
test.DeserializeObject("TypeDoc.xml");
}
public void SerializeObject(string filename)
{
// Creates a new XmlSerializer.
XmlSerializer s = new XmlSerializer(typeof(Group));
// Writing the XML file to disk requires a TextWriter.
TextWriter writer = new StreamWriter(filename);
Group group = new Group();
Manager manager = new Manager();
Employee emp1 = new Employee();
Employee emp2 = new Employee();
manager.Name = "Consuela";
manager.Level = 3;
emp1.Name = "Seiko";
emp2.Name = "Martina";
Employee [] emps = new Employee[3]{manager, emp1, emp2};
group.Employees = emps;
// Creates an int and a string and assigns to ExtraInfo.
group.ExtraInfo = new Object[3]{43, "Extra", manager};
// Serializes the object, and closes the StreamWriter.
s.Serialize(writer, group);
writer.Close();
}
public void DeserializeObject(string filename)
{
FileStream fs = new FileStream(filename, FileMode.Open);
XmlSerializer x = new XmlSerializer(typeof(Group));
Group g = (Group) x.Deserialize(fs);
Console.WriteLine("Members:");
foreach(Employee e in g.Employees)
{
Console.WriteLine("\t" + e.Name);
}
}
}
Option Explicit
Option Strict
Imports System.IO
Imports System.Xml.Serialization
Public Class Group
' The XmlArrayItemAttribute allows the XmlSerializer to insert
' both the base type (Employee) and derived type (Manager)
' into serialized arrays.
<XmlArrayItem(GetType(Manager)), _
XmlArrayItem(GetType(Employee))> _
Public Employees() As Employee
' Use the XmlArrayItemAttribute to specify types allowed
' in an array of Object items.
<XmlArray(), _
XmlArrayItem(GetType(Integer), ElementName := "MyNumber"), _
XmlArrayItem(GetType(String), ElementName := "MyString"), _
XmlArrayItem(GetType(Manager))> _
Public ExtraInfo() As Object
End Class
Public Class Employee
Public Name As String
End Class
Public Class Manager
Inherits Employee
Public Level As Integer
End Class
Public Class Run
Public Shared Sub Main()
Dim test As New Run()
test.SerializeObject("TypeDoc.xml")
test.DeserializeObject("TypeDoc.xml")
End Sub
Public Sub SerializeObject(ByVal filename As String)
' Creates a new XmlSerializer.
Dim s As New XmlSerializer(GetType(Group))
' Writing the XML file to disk requires a TextWriter.
Dim writer As New StreamWriter(filename)
Dim group As New Group()
Dim manager As New Manager()
Dim emp1 As New Employee()
Dim emp2 As New Employee()
manager.Name = "Consuela"
manager.Level = 3
emp1.Name = "Seiko"
emp2.Name = "Martina"
Dim emps() As Employee = {manager, emp1, emp2}
group.Employees = emps
' Creates an int and a string and assigns to ExtraInfo.
group.ExtraInfo = New Object() {43, "Extra", manager}
' Serializes the object, and closes the StreamWriter.
s.Serialize(writer, group)
writer.Close()
End Sub
Public Sub DeserializeObject(ByVal filename As String)
Dim fs As New FileStream(filename, FileMode.Open)
Dim x As New XmlSerializer(GetType(Group))
Dim g As Group = CType(x.Deserialize(fs), Group)
Console.WriteLine("Members:")
Dim e As Employee
For Each e In g.Employees
Console.WriteLine(ControlChars.Tab & e.Name)
Next e
End Sub
End Class
Keterangan
XmlArrayItemAttribute milik keluarga atribut yang mengontrol bagaimana XmlSerializer serialisasi atau deserialisasi objek. Untuk daftar lengkap atribut serupa, lihat Atribut yang Mengontrol Serialisasi XML.
Anda dapat menerapkan ke XmlArrayItemAttribute setiap anggota baca/tulis publik yang mengembalikan array, atau menyediakan akses ke salah satu. Misalnya, bidang yang mengembalikan array objek, koleksi, ArrayList, atau kelas apa pun yang mengimplementasikan IEnumerable antarmuka.
Mendukung XmlArrayItemAttribute polimorfisme--dengan kata lain, memungkinkan XmlSerializer untuk menambahkan objek turunan ke array. Misalnya, kelas bernama Mammal berasal dari kelas dasar bernama Animal. Misalkan lebih lanjut bahwa kelas bernama MyAnimals berisi bidang yang mengembalikan array Animal objek. Untuk mengizinkan XmlSerializer serialisasi jenis Animal dan Mammal , terapkan XmlArrayItemAttribute ke bidang dua kali, setiap kali menentukan salah satu dari dua jenis yang dapat diterima.
Note
Anda dapat menerapkan beberapa instans XmlArrayItemAttribute atau XmlElementAttribute untuk menentukan jenis objek yang dapat dimasukkan ke dalam array.
Note
Serialisasi bidang atau properti yang mengembalikan antarmuka atau array antarmuka tidak didukung.
Untuk informasi selengkapnya tentang menggunakan atribut, lihat Atribut.
Note
Anda dapat menggunakan kata XmlArrayItem dalam kode Anda alih-alih lebih lama XmlArrayItemAttribute.
Konstruktor
| Nama | Deskripsi |
|---|---|
| XmlArrayItemAttribute() |
Menginisialisasi instans baru dari kelas XmlArrayItemAttribute. |
| XmlArrayItemAttribute(String, Type) |
Menginisialisasi instans XmlArrayItemAttribute baru kelas dan menentukan nama elemen XML yang dihasilkan dalam dokumen XML dan Type yang dapat disisipkan ke dalam dokumen XML yang dihasilkan. |
| XmlArrayItemAttribute(String) |
Menginisialisasi instans XmlArrayItemAttribute baru kelas dan menentukan nama elemen XML yang dihasilkan dalam dokumen XML. |
| XmlArrayItemAttribute(Type) |
Menginisialisasi instans XmlArrayItemAttribute baru kelas dan menentukan Type yang dapat dimasukkan ke dalam array berseri. |
Properti
| Nama | Deskripsi |
|---|---|
| DataType |
Mendapatkan atau mengatur jenis data XML dari elemen XML yang dihasilkan. |
| ElementName |
Mendapatkan atau mengatur nama elemen XML yang dihasilkan. |
| Form |
Mendapatkan atau menetapkan nilai yang menunjukkan apakah nama elemen XML yang dihasilkan memenuhi syarat. |
| IsNullable |
Mendapatkan atau menetapkan nilai yang menunjukkan apakah XmlSerializer harus menserialisasikan anggota sebagai tag XML kosong dengan atribut yang |
| Namespace |
Mendapatkan atau mengatur namespace dari elemen XML yang dihasilkan. |
| NestingLevel |
Mendapatkan atau mengatur tingkat dalam hierarki elemen XML yang XmlArrayItemAttribute terpengaruh. |
| Type |
Mendapatkan atau mengatur jenis yang diizinkan dalam array. |
| TypeId |
Ketika diimplementasikan dalam kelas turunan, mendapatkan pengidentifikasi unik untuk Attributeini. (Diperoleh dari Attribute) |
Metode
| Nama | Deskripsi |
|---|---|
| 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 Type instans saat ini. (Diperoleh dari Object) |
| IsDefaultAttribute() |
Ketika ditimpa dalam kelas turunan, menunjukkan apakah nilai instans ini adalah nilai default untuk kelas turunan. (Diperoleh dari Attribute) |
| Match(Object) |
Saat ditimpa dalam kelas turunan, mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu. (Diperoleh dari Attribute) |
| MemberwiseClone() |
Membuat salinan dangkal dari Objectsaat ini. (Diperoleh dari Object) |
| ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
Implementasi Antarmuka Eksplisit
| Nama | Deskripsi |
|---|---|
| _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) |