CollectionDataContractAttribute Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Lorsqu’elle est appliquée à un type de collection, active la spécification personnalisée des éléments d’élément de collection. Cet attribut ne peut être appliqué qu’aux types reconnus par les DataContractSerializer comme des collections sérialisables valides.
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
- Héritage
- Attributs
Exemples
L’exemple suivant applique la CollectionDataContractAttribute classe qui hérite de la List<T> classe. Le code définit les Name valeurs personnalisées et ItemName les propriétés.
[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
Lorsque l’outil utilitaire de métadonnées ServiceModel (Svcutil.exe) est utilisé pour générer du code pour le client, le code ressemble à l’exemple suivant. Notez que le nom de la classe est modifié, ainsi que le ItemName. Lorsque vous utilisez des génériques, le nom du paramètre de type est utilisé pour créer le nom de type résultant.
// 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
Remarques
L’objectif CollectionDataContractAttribute est de faciliter l’interopérabilité lors de l’utilisation de données provenant de fournisseurs non WCF et de contrôler la forme exacte des instances sérialisées. À cette fin, la ItemName propriété vous permet de contrôler les noms des éléments répétitifs à l’intérieur d’une collection. Cela est particulièrement utile lorsque le fournisseur n’utilise pas le nom de type d’élément XML comme nom d’élément de tableau, par exemple si un fournisseur utilise « String » comme nom de type d’élément au lieu du nom de type XSD « string ».
Il CollectionDataContractAttribute est également destiné à être utilisé avec des types de dictionnaire pour gérer les collections à clés. Les types de dictionnaire sont des classes qui implémentent l’interface ou l’interface IDictionaryIDictionary<TKey,TValue> , par exemple le Dictionary<TKey,TValue>. Utilisez les propriétés et ValueName les KeyName propriétés pour définir des noms personnalisés lors de l’utilisation de la Dictionary<TKey,TValue> classe.
Pour plus d’informations sur l’utilisation de l’objet DataContractSerializer, consultez Utilisation des contrats de données.
Constructeurs
| Nom | Description |
|---|---|
| CollectionDataContractAttribute() |
Initialise une nouvelle instance de la classe CollectionDataContractAttribute. |
Propriétés
| Nom | Description |
|---|---|
| IsItemNameSetExplicitly |
Obtient si ItemName elle a été définie explicitement. |
| IsKeyNameSetExplicitly |
Obtient si KeyName elle a été définie explicitement. |
| IsNameSetExplicitly |
Obtient si Name elle a été définie explicitement. |
| IsNamespaceSetExplicitly |
Obtient si Namespace elle a été définie explicitement. |
| IsReference |
Obtient ou définit une valeur qui indique s'il faut conserver les données de référence d'objet. |
| IsReferenceSetExplicitly |
Obtient si la référence a été définie explicitement. |
| IsValueNameSetExplicitly |
Obtient si ValueName elle a été définie explicitement. |
| ItemName |
Obtient ou définit un nom personnalisé pour un élément de collection. |
| KeyName |
Obtient ou définit le nom personnalisé d’un nom de clé de dictionnaire. |
| Name |
Obtient ou définit le nom du contrat de données pour le type de collection. |
| Namespace |
Obtient ou définit l’espace de noms pour le contrat de données. |
| TypeId |
En cas d’implémentation dans une classe dérivée, obtient un identificateur unique pour cette Attribute. (Hérité de Attribute) |
| ValueName |
Obtient ou définit le nom personnalisé d’un nom de valeur de dictionnaire. |
Méthodes
| Nom | Description |
|---|---|
| Equals(Object) |
Retourne une valeur qui indique si cette instance est égale à un objet spécifié. (Hérité de Attribute) |
| GetHashCode() |
Retourne le code de hachage pour cette instance. (Hérité de Attribute) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| IsDefaultAttribute() |
En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut de la classe dérivée. (Hérité de Attribute) |
| Match(Object) |
En cas de substitution dans une classe dérivée, retourne une valeur qui indique si cette instance est égale à un objet spécifié. (Hérité de Attribute) |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch. (Hérité de Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Récupère les informations de type d’un objet, qui peuvent être utilisées pour obtenir les informations de type d’une interface. (Hérité de Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1). (Hérité de Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Fournit l’accès aux propriétés et méthodes exposées par un objet. (Hérité de Attribute) |