CollectionDataContractAttribute Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Wanneer dit wordt toegepast op een verzamelingstype, kunt u aangepaste specificatie van de elementen van het verzamelingsitem inschakelen. Dit kenmerk kan alleen worden toegepast op typen die worden herkend door de DataContractSerializer als geldige, serialiseerbare verzamelingen.
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
- Overname
- Kenmerken
Voorbeelden
In het volgende voorbeeld wordt de CollectionDataContractAttribute klasse toegepast op een klasse die wordt overgenomen van de List<T> klasse. De code stelt de Name en ItemName eigenschappen in op aangepaste waarden.
[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
Wanneer het hulpprogramma hulpprogramma voor metagegevens van ServiceModel (Svcutil.exe) wordt gebruikt om code voor de client te genereren, lijkt de code op het volgende voorbeeld. U ziet dat de naam van de klasse wordt gewijzigd, evenals de ItemName. Wanneer u generics gebruikt, wordt de parameternaam van het type gebruikt om de resulterende typenaam te maken.
// 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
Opmerkingen
Het CollectionDataContractAttribute is bedoeld om de interoperabiliteit te vereenvoudigen bij het werken met gegevens van niet-WCF-providers en om de exacte vorm van geserialiseerde exemplaren te beheren. Daarom kunt u met de ItemName eigenschap de namen van de herhalende items in een verzameling beheren. Dit is vooral handig wanneer de provider de naam van het XML-elementtype niet gebruikt als de naam van het matrixitem, bijvoorbeeld als een provider 'Tekenreeks' gebruikt als naam van het elementtype in plaats van de XSD-typenaam 'tekenreeks'.
Het CollectionDataContractAttribute is ook bedoeld om te worden gebruikt met woordenlijsttypen voor het verwerken van sleutelverzamelingen. Woordenlijsttypen zijn klassen die de IDictionary interface of de IDictionary<TKey,TValue> interface implementeren, bijvoorbeeld de Dictionary<TKey,TValue>. Gebruik de KeyName en ValueName eigenschappen om aangepaste namen in te stellen wanneer u de Dictionary<TKey,TValue> klasse gebruikt.
Zie Data Contracts gebruiken voor meer informatie over het gebruik van de DataContractSerializeropdracht.
Constructors
| Name | Description |
|---|---|
| CollectionDataContractAttribute() |
Initialiseert een nieuw exemplaar van de CollectionDataContractAttribute klasse. |
Eigenschappen
| Name | Description |
|---|---|
| IsItemNameSetExplicitly |
Hiermee wordt aangegeven of ItemName deze expliciet is ingesteld. |
| IsKeyNameSetExplicitly |
Hiermee wordt aangegeven of KeyName deze expliciet is ingesteld. |
| IsNameSetExplicitly |
Hiermee wordt aangegeven of Name deze expliciet is ingesteld. |
| IsNamespaceSetExplicitly |
Hiermee wordt aangegeven of Namespace deze expliciet is ingesteld. |
| IsReference |
Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of u objectverwijzingsgegevens wilt behouden. |
| IsReferenceSetExplicitly |
Hiermee wordt aangegeven of de verwijzing expliciet is ingesteld. |
| IsValueNameSetExplicitly |
Hiermee wordt aangegeven of ValueName deze expliciet is ingesteld. |
| ItemName |
Hiermee haalt u een aangepaste naam voor een verzamelingselement op of stelt u deze in. |
| KeyName |
Hiermee haalt u de aangepaste naam op voor de naam van een woordenlijstsleutel of stelt u deze in. |
| Name |
Hiermee wordt de naam van het gegevenscontract voor het verzamelingstype opgehaald of ingesteld. |
| Namespace |
Hiermee haalt u de naamruimte voor het gegevenscontract op of stelt u deze in. |
| TypeId |
Wanneer deze wordt geïmplementeerd in een afgeleide klasse, krijgt u Attributehiervoor een unieke id. (Overgenomen van Attribute) |
| ValueName |
Hiermee wordt de aangepaste naam opgehaald of ingesteld voor de naam van een woordenlijstwaarde. |
Methoden
| Name | Description |
|---|---|
| Equals(Object) |
Retourneert een waarde die aangeeft of dit exemplaar gelijk is aan een opgegeven object. (Overgenomen van Attribute) |
| GetHashCode() |
Retourneert de hash-code voor dit exemplaar. (Overgenomen van Attribute) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| IsDefaultAttribute() |
Wanneer deze wordt overschreven in een afgeleide klasse, geeft u aan of de waarde van dit exemplaar de standaardwaarde is voor de afgeleide klasse. (Overgenomen van Attribute) |
| Match(Object) |
Wanneer deze wordt overschreven in een afgeleide klasse, wordt een waarde geretourneerd die aangeeft of dit exemplaar gelijk is aan een opgegeven object. (Overgenomen van Attribute) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |
Expliciete interface-implementaties
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's. (Overgenomen van Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Hiermee haalt u de typegegevens voor een object op, die kan worden gebruikt om de typegegevens voor een interface op te halen. (Overgenomen van Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1). (Overgenomen van Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven. (Overgenomen van Attribute) |