CollectionDataContractAttribute 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.
Saat diterapkan ke jenis koleksi, mengaktifkan spesifikasi kustom elemen item koleksi. Atribut ini hanya dapat diterapkan ke jenis yang dikenali oleh DataContractSerializer koleksi yang valid dan dapat diserialisasikan.
public ref class CollectionDataContractAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Struct, AllowMultiple=false, Inherited=false)]
public sealed class CollectionDataContractAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Struct, AllowMultiple=false, Inherited=false)>]
type CollectionDataContractAttribute = class
inherit Attribute
Public NotInheritable Class CollectionDataContractAttribute
Inherits Attribute
- Warisan
- Atribut
Contoh
Contoh berikut menerapkan ke CollectionDataContractAttribute kelas yang mewarisi dari List<T> kelas . Kode mengatur Name properti dan ItemName ke nilai kustom.
[CollectionDataContract(Name = "Custom{0}List", ItemName = "CustomItem")]
public class CustomList<T> : List<T>
{
public CustomList()
: base()
{
}
public CustomList(T[] items)
: base()
{
foreach (T item in items)
{
Add(item);
}
}
}
<CollectionDataContract(Name := "Custom{0}List", ItemName := "CustomItem")> _
Public Class CustomList(Of T)
Inherits List(Of T)
Public Sub New()
MyBase.New()
End Sub
Public Sub New(ByVal items() As T)
MyBase.New()
For Each item As T In items
Add(item)
Next item
End Sub
End Class
Ketika Alat Utilitas Metadata ServiceModel (Svcutil.exe) digunakan untuk menghasilkan kode untuk klien, kode menyerupai contoh berikut. Perhatikan bahwa nama kelas diubah, serta ItemName. Saat menggunakan generik, nama parameter jenis digunakan untuk membuat nama jenis yang dihasilkan.
// This is the generated code. Note that the class is renamed to "CustomBookList",
// and the ItemName is set to "CustomItem".
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
[System.Runtime.Serialization.CollectionDataContractAttribute(ItemName = "CustomItem")]
public class CustomBookList : System.Collections.Generic.List<Microsoft.Security.Samples.Book>
{
}
' This is the generated code. Note that the class is renamed to "CustomBookList",
' and the ItemName is set to "CustomItem".
<System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0"), System.Runtime.Serialization.CollectionDataContractAttribute(ItemName := "CustomItem")> _
Public Class CustomBookList
Inherits System.Collections.Generic.List(Of Microsoft.Security.Samples.Book)
End Class
Keterangan
CollectionDataContractAttribute dimaksudkan untuk memudahkan interoperabilitas saat bekerja dengan data dari penyedia non-WCF dan untuk mengontrol bentuk instans berseri yang tepat. Untuk tujuan ini, ItemName properti memungkinkan Anda mengontrol nama item berulang di dalam koleksi. Ini sangat berguna ketika penyedia tidak menggunakan nama jenis elemen XML sebagai nama item array, misalnya, jika penyedia menggunakan "String" sebagai nama jenis elemen alih-alih nama jenis XSD "string".
CollectionDataContractAttribute ini juga dimaksudkan untuk digunakan dengan jenis kamus untuk menangani koleksi kunci. Jenis kamus adalah kelas yang mengimplementasikan IDictionary antarmuka atau IDictionary<TKey,TValue> , misalnya, Dictionary<TKey,TValue>. KeyName Gunakan properti dan ValueName untuk mengatur nama kustom saat menggunakan Dictionary<TKey,TValue> kelas .
Untuk informasi selengkapnya tentang menggunakan DataContractSerializer, lihat Menggunakan Kontrak Data.
Konstruktor
CollectionDataContractAttribute() |
Menginisialisasi instans baru kelas CollectionDataContractAttribute. |
Properti
IsItemNameSetExplicitly |
Mendapatkan apakah ItemName telah diatur secara eksplisit. |
IsKeyNameSetExplicitly |
Mendapatkan apakah KeyName telah diatur secara eksplisit. |
IsNameSetExplicitly |
Mendapatkan apakah Name telah diatur secara eksplisit. |
IsNamespaceSetExplicitly |
Mendapatkan apakah Namespace telah diatur secara eksplisit. |
IsReference |
Mendapatkan atau menetapkan nilai yang menunjukkan apakah akan mempertahankan data referensi objek. |
IsReferenceSetExplicitly |
Mendapatkan apakah referensi telah diatur secara eksplisit. |
IsValueNameSetExplicitly |
Mendapatkan apakah ValueName telah diatur secara eksplisit. |
ItemName |
Mendapatkan atau mengatur nama kustom untuk elemen koleksi. |
KeyName |
Mendapatkan atau mengatur nama kustom untuk nama kunci kamus. |
Name |
Mendapatkan atau mengatur nama kontrak data untuk jenis koleksi. |
Namespace |
Mendapatkan atau mengatur namespace untuk kontrak data. |
TypeId |
Ketika diimplementasikan di kelas turunan, mendapatkan pengidentifikasi unik untuk ini Attribute. (Diperoleh dari Attribute) |
ValueName |
Mendapatkan atau mengatur nama kustom untuk nama nilai kamus. |
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 dari 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 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) |