CollectionDataContractAttribute Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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
- 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) |