Nyelv

CollectionDataContractAttribute Osztály

Definíció

Gyűjteménytípusra alkalmazva lehetővé teszi a gyűjteményelem-elemek egyéni specifikációját. Ez az attribútum csak az érvényes, szerializálható gyűjtemények által DataContractSerializer felismert típusokra alkalmazható.

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
Öröklődés
CollectionDataContractAttribute
Attribútumok

Példák

Az alábbi példa az CollectionDataContractAttribute osztálytól List<T> öröklő osztályra vonatkozik. A kód egyéni értékekre állítja a Name tulajdonságokat.ItemName

[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

Ha a ServiceModel Metadata Segédprogram (Svcutil.exe) használatával hoz létre kódot az ügyfél számára, a kód az alábbi példához hasonlít. Figyelje meg, hogy az osztály neve megváltozott, valamint a ItemName. Általánosak használata esetén a rendszer a típusparaméter nevét használja az eredményként kapott típusnév létrehozásához.

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

Megjegyzések

A CollectionDataContractAttribute cél a nem WCF-szolgáltatóktól származó adatokkal való együttműködés megkönnyítése és a szerializált példányok pontos alakjának szabályozása. Ennek érdekében a ItemName tulajdonság lehetővé teszi az ismétlődő elemek nevének szabályozását egy gyűjteményen belül. Ez különösen akkor hasznos, ha a szolgáltató nem az XML-elemtípus nevét használja tömbelemnévként, például ha egy szolgáltató a "Sztring" nevet használja elemtípusnévként a "sztring" XSD-típusnév helyett.

Emellett CollectionDataContractAttribute szótártípusokkal is használható a kulcsos gyűjtemények kezeléséhez. A szótártípusok olyan osztályok, amelyek vagy az IDictionaryIDictionary<TKey,TValue> interfészt implementálják, például a Dictionary<TKey,TValue>. Az osztály használatakor KeyName a tulajdonságok és ValueName a Dictionary<TKey,TValue> tulajdonságok használatával egyéni neveket állíthat be.

Az adatszerződések használatával DataContractSerializerkapcsolatos további információkért lásd: Adatszerződések használata.

Konstruktorok

Name Description
CollectionDataContractAttribute()

Inicializálja a CollectionDataContractAttribute osztály új példányát.

Tulajdonságok

Name Description
IsItemNameSetExplicitly

Lekérdezi, hogy explicit módon lett-e ItemName beállítva.

IsKeyNameSetExplicitly

Lekérdezi, hogy explicit módon lett-e KeyName beállítva.

IsNameSetExplicitly

Lekérdezi, hogy explicit módon lett-e Name beállítva.

IsNamespaceSetExplicitly

Lekérdezi, hogy explicit módon lett-e Namespace beállítva.

IsReference

Lekéri vagy beállít egy értéket, amely jelzi, hogy meg szeretné-e őrizni az objektumhivatkozási adatokat.

IsReferenceSetExplicitly

Lekérdezi, hogy a hivatkozás explicit módon lett-e beállítva.

IsValueNameSetExplicitly

Lekérdezi, hogy explicit módon lett-e ValueName beállítva.

ItemName

Beolvas vagy beállít egy egyéni nevet egy gyűjteményelemhez.

KeyName

Lekéri vagy beállítja a szótárkulcs nevének egyéni nevét.

Name

Lekéri vagy beállítja a gyűjteménytípus adatszerződésének nevét.

Namespace

Lekéri vagy beállítja az adatszerződés névterét.

TypeId

Ha származtatott osztályban implementálják, ehhez egy egyedi azonosítót Attributekap.

(Öröklődés forrása Attribute)
ValueName

Lekéri vagy beállítja a szótár értékének egyéni nevét.

Metódusok

Name Description
Equals(Object)

Olyan értéket ad vissza, amely jelzi, hogy ez a példány egyenlő-e egy adott objektummal.

(Öröklődés forrása Attribute)
GetHashCode()

A példány kivonatkódját adja vissza.

(Öröklődés forrása Attribute)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
IsDefaultAttribute()

Ha egy származtatott osztályban felül van bírálva, azt jelzi, hogy a példány értéke-e a származtatott osztály alapértelmezett értéke.

(Öröklődés forrása Attribute)
Match(Object)

Származtatott osztály felülírásakor egy olyan értéket ad vissza, amely jelzi, hogy ez a példány egy adott objektummal egyenlő-e.

(Öröklődés forrása Attribute)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

Explicit interfész-implementációk

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

Névkészletet képez le a küldési azonosítók megfelelő készletére.

(Öröklődés forrása Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Lekéri egy objektum típusadatait, amelyek a felület típusadatainak lekérésére használhatók.

(Öröklődés forrása Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Lekéri az objektumok által biztosított típusinformációs felületek számát (0 vagy 1).

(Öröklődés forrása Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Hozzáférést biztosít az objektumok által közzétett tulajdonságokhoz és metódusokhoz.

(Öröklődés forrása Attribute)

A következőre érvényes:

Lásd még