CollectionDataContractAttribute Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Se applicato a un tipo di raccolta, abilita la specifica personalizzata degli elementi dell'elemento della raccolta. Questo attributo può essere applicato solo ai tipi riconosciuti dal DataContractSerializer come raccolte serializzabili valide.
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
- Ereditarietà
- Attributi
Esempio
Nell'esempio seguente viene applicato a CollectionDataContractAttribute una classe che eredita dalla List<T> classe . Il codice imposta le Name proprietà e ItemName su valori personalizzati.
[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
Quando lo strumento utilità metadati ServiceModel (Svcutil.exe) viene usato per generare codice per il client, il codice è simile all'esempio seguente. Si noti che il nome della classe viene modificato, nonché .ItemName Quando si usano generics, il nome del parametro di tipo viene usato per creare il nome del tipo risultante.
// 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
Commenti
l'oggetto CollectionDataContractAttribute è progettato per semplificare l'interoperabilità quando si utilizzano dati di provider non WCF e per controllare la forma esatta delle istanze serializzate. A questo scopo, la ItemName proprietà consente di controllare i nomi degli elementi ripetuti all'interno di una raccolta. Ciò è particolarmente utile quando il provider non usa il nome del tipo di elemento XML come nome dell'elemento della matrice, ad esempio se un provider usa "String" come nome del tipo di elemento anziché il nome del tipo XSD "string".
è CollectionDataContractAttribute inoltre progettato per essere usato con i tipi di dizionario per gestire le raccolte con chiave. I tipi di dizionario sono classi che implementano l'interfaccia IDictionaryIDictionary<TKey,TValue> o , Dictionary<TKey,TValue>ad esempio . Usare le KeyName proprietà e ValueName per impostare nomi personalizzati quando si usa la Dictionary<TKey,TValue> classe .
Per altre informazioni sull'uso di DataContractSerializer, vedere Uso di contratti dati.
Costruttori
| Nome | Descrizione |
|---|---|
| CollectionDataContractAttribute() |
Inizializza una nuova istanza della classe CollectionDataContractAttribute. |
Proprietà
| Nome | Descrizione |
|---|---|
| IsItemNameSetExplicitly |
Ottiene un valore che indica se ItemName è stato impostato in modo esplicito. |
| IsKeyNameSetExplicitly |
Ottiene un valore che indica se KeyName è stato impostato in modo esplicito. |
| IsNameSetExplicitly |
Ottiene un valore che indica se Name è stato impostato in modo esplicito. |
| IsNamespaceSetExplicitly |
Ottiene un valore che indica se Namespace è stato impostato in modo esplicito. |
| IsReference |
Ottiene o imposta un valore che indica se mantenere i dati del riferimento all'oggetto. |
| IsReferenceSetExplicitly |
Ottiene un valore che indica se il riferimento è stato impostato in modo esplicito. |
| IsValueNameSetExplicitly |
Ottiene un valore che indica se ValueName è stato impostato in modo esplicito. |
| ItemName |
Ottiene o imposta un nome personalizzato per un elemento della raccolta. |
| KeyName |
Ottiene o imposta il nome personalizzato per un nome di chiave del dizionario. |
| Name |
Ottiene o imposta il nome del contratto dati per il tipo di raccolta. |
| Namespace |
Ottiene o imposta lo spazio dei nomi per il contratto dati. |
| TypeId |
Se implementato in una classe derivata, ottiene un identificatore univoco per questo Attribute. (Ereditato da Attribute) |
| ValueName |
Ottiene o imposta il nome personalizzato per un nome di valore del dizionario. |
Metodi
| Nome | Descrizione |
|---|---|
| Equals(Object) |
Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato. (Ereditato da Attribute) |
| GetHashCode() |
Restituisce il codice hash per questa istanza. (Ereditato da Attribute) |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| IsDefaultAttribute() |
Quando sottoposto a override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata. (Ereditato da Attribute) |
| Match(Object) |
Quando sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza è uguale a un oggetto specificato. (Ereditato da Attribute) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch. (Ereditato da Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera le informazioni sul tipo per un oggetto, che può essere utilizzato per ottenere le informazioni sul tipo per un'interfaccia. (Ereditato da Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1). (Ereditato da Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Fornisce l'accesso alle proprietà e ai metodi esposti da un oggetto . (Ereditato da Attribute) |