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.
En cas d'application à un type collection, active la spécification personnalisée des éléments item de la collection. Cet attribut peut uniquement être appliqué aux types qui sont reconnus comme étant des collections valides et sérialisables par le DataContractSerializer.
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 le CollectionDataContractAttribute à une classe qui hérite de la classe List<T>. Le code affecte des valeurs personnalisées aux propriétés Name et 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
Lorsque l’outil ServiceModel Metadata Utility Tool (Svcutil.exe) est utilisé pour générer du code pour le client, le code ressemble à l’exemple suivant. Remarquez que le nom de la classe est modifié, tout comme la ItemName. Lors de l’utilisation de génériques, le nom de 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
Le CollectionDataContractAttribute est destiné à faciliter l’interopérabilité lors de l’utilisation de données provenant de fournisseurs non WCF et à contrôler la forme exacte des instances sérialisées. À cette fin, la propriété ItemName vous permet de contrôler les noms des éléments à répétition à l’intérieur d’une collection. Cette technique est particulièrement utile lorsque le fournisseur n'utilise pas le nom du 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 à la place du nom de type XSD « string ».
Le CollectionDataContractAttribute est également prévu pour être utilisé avec les types de dictionnaire afin de gérer des collections à clé. Les types de dictionnaire sont des classes qui implémentent l'interface IDictionary ou IDictionary<TKey,TValue>, par exemple, le Dictionary<TKey,TValue>. Utilisez les propriétés KeyName et ValueName pour définir des noms personnalisés en cas d'utilisation de la classe Dictionary<TKey,TValue>.
Pour plus d’informations sur l’utilisation de DataContractSerializer, consultez Utilisation de contrats de données.
Constructeurs
CollectionDataContractAttribute() |
Initialise une nouvelle instance de la classe CollectionDataContractAttribute. |
Propriétés
IsItemNameSetExplicitly |
Obtient l’information indiquant si ItemName a été défini explicitement. |
IsKeyNameSetExplicitly |
Obtient l’information indiquant si KeyName a été défini explicitement. |
IsNameSetExplicitly |
Obtient l’information indiquant si Name a été défini explicitement. |
IsNamespaceSetExplicitly |
Obtient l’information indiquant si Namespace a été défini 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 l’information indiquant si la référence a été définie explicitement. |
IsValueNameSetExplicitly |
Obtient l’information indiquant si ValueName a été défini explicitement. |
ItemName |
Obtient ou définit un nom personnalisé pour un élément de la collection. |
KeyName |
Obtient ou définit le nom personnalisé pour un nom de la clé de dictionnaire. |
Name |
Obtient ou définit le nom du contrat de données pour le type collection. |
Namespace |
Obtient ou définit l'espace de noms pour le contrat de données. |
TypeId |
Lors de l'implémentation dans une classe dérivée, obtient un identificateur unique pour l'objet Attribute. (Hérité de Attribute) |
ValueName |
Obtient ou définit le nom personnalisé pour un nom de la valeur de dictionnaire. |
Méthodes
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 de cette instance. (Hérité de Attribute) |
GetType() |
Obtient le 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 pour la classe dérivée. (Hérité de Attribute) |
Match(Object) |
En cas de substitution dans une classe dérivée, retourne une valeur indiquant si cette instance équivaut à un objet spécifié. (Hérité de Attribute) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |
Implémentations d’interfaces explicites
_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 pour 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 aux méthodes exposées par un objet. (Hérité de Attribute) |