CollectionDataContractAttribute Sınıf

Tanım

Bir koleksiyon türüne uygulandığında, koleksiyon öğesi öğelerinin özel belirtimini etkinleştirir. Bu öznitelik yalnızca geçerli, serileştirilebilir koleksiyonlar olarak tanınan DataContractSerializer türlere uygulanabilir.

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
Devralma
CollectionDataContractAttribute
Öznitelikler

Örnekler

Aşağıdaki örnek öğesini CollectionDataContractAttribute sınıfından devralan bir sınıfa List<T> uygular. Kod, ve ItemName özelliklerini özel değerlere ayarlarName.

[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

İstemci için kod oluşturmak için ServiceModel Meta Veri Yardımcı Programı Aracı (Svcutil.exe) kullanıldığında, kod aşağıdaki örneğe benzer. sınıfının adının ve değerinin değiştirildiğine ItemNamedikkat edin. Genel değerler kullanılırken, sonuçta elde edilen tür adını oluşturmak için tür parametresi adı kullanılır.

// 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

Açıklamalar

, CollectionDataContractAttribute WCF olmayan sağlayıcılardan gelen verilerle çalışırken birlikte çalışabilirliği kolaylaştırmak ve serileştirilmiş örneklerin tam şeklini denetlemek için tasarlanmıştır. Bu amaçla özelliği, ItemName bir koleksiyondaki yinelenen öğelerin adlarını denetlemenize olanak tanır. Bu özellikle, sağlayıcı dizi öğesi adı olarak XML öğe türü adını kullanmadığında yararlıdır; örneğin, bir sağlayıcı "string" XSD tür adı yerine öğe türü adı olarak "Dize" kullanır.

CollectionDataContractAttribute ayrıca anahtarlı koleksiyonları işlemek için sözlük türleriyle birlikte kullanılması amaçlanmıştır. Sözlük türleri, veya arabirimini IDictionary IDictionary<TKey,TValue> uygulayan sınıflardır; örneğin, Dictionary<TKey,TValue>. sınıfını KeyName kullanırken Dictionary<TKey,TValue> özel adlar ayarlamak için ve ValueName özelliklerini kullanın.

kullanma hakkında DataContractSerializerdaha fazla bilgi için bkz. Veri Sözleşmelerini Kullanma.

Oluşturucular

CollectionDataContractAttribute()

CollectionDataContractAttribute sınıfının yeni bir örneğini başlatır.

Özellikler

IsItemNameSetExplicitly

Açıkça ayarlanıp ayarlanmadığını ItemName alır.

IsKeyNameSetExplicitly

Açıkça ayarlanıp ayarlanmadığını KeyName alır.

IsNameSetExplicitly

Açıkça ayarlanıp ayarlanmadığını Name alır.

IsNamespaceSetExplicitly

Açıkça ayarlanıp ayarlanmadığını Namespace alır.

IsReference

Nesne başvuru verilerinin korunup korunmayacağını belirten bir değer alır veya ayarlar.

IsReferenceSetExplicitly

Başvuru açıkça ayarlanıp ayarlanmadığını alır.

IsValueNameSetExplicitly

Açıkça ayarlanıp ayarlanmadığını ValueName alır.

ItemName

Koleksiyon öğesi için özel bir ad alır veya ayarlar.

KeyName

Sözlük anahtarı adı için özel adı alır veya ayarlar.

Name

Koleksiyon türü için veri sözleşmesi adını alır veya ayarlar.

Namespace

Veri sözleşmesi için ad alanını alır veya ayarlar.

TypeId

Türetilmiş bir sınıfta uygulandığında, bu Attributeiçin benzersiz bir tanımlayıcı alır.

(Devralındığı yer: Attribute)
ValueName

Sözlük değeri adı için özel adı alır veya ayarlar.

Yöntemler

Equals(Object)

Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değeri döndürür.

(Devralındığı yer: Attribute)
GetHashCode()

Bu örneğe ilişkin karma kodu döndürür.

(Devralındığı yer: Attribute)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
IsDefaultAttribute()

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir.

(Devralındığı yer: Attribute)
Match(Object)

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Bir arabirimin tür bilgilerini almak için kullanılabilecek bir nesnenin tür bilgilerini alır.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1).

(Devralındığı yer: Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bir nesne tarafından sunulan özelliklere ve yöntemlere erişim sağlar.

(Devralındığı yer: Attribute)

Şunlara uygulanır

Ayrıca bkz.