CollectionDataContractAttribute Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Po zastosowaniu do typu kolekcji włącza niestandardową specyfikację elementów elementu kolekcji. Ten atrybut można zastosować tylko do typów rozpoznawanych przez DataContractSerializer prawidłowe kolekcje z możliwością serializacji.
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
- Dziedziczenie
- Atrybuty
Przykłady
Poniższy przykład dotyczy CollectionDataContractAttribute klasy dziedziczonej List<T> z klasy . Kod ustawia Name właściwości i ItemName na wartości niestandardowe.
[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
Gdy narzędzie ServiceModel Metadata Tool (Svcutil.exe) jest używane do generowania kodu dla klienta, kod przypomina poniższy przykład. Zwróć uwagę, że nazwa klasy została zmieniona, a także .ItemName W przypadku korzystania z typów ogólnych nazwa parametru typu jest używana do tworzenia wynikowej nazwy typu.
// 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
Uwagi
Ma CollectionDataContractAttribute na celu ułatwienie współdziałania podczas pracy z danymi od dostawców innych niż WCF i kontrolowanie dokładnego kształtu serializowanych wystąpień. W tym celu ItemName właściwość umożliwia kontrolowanie nazw powtarzających się elementów w kolekcji. Jest to szczególnie przydatne, gdy dostawca nie używa nazwy typu elementu XML jako nazwy elementu tablicy, na przykład jeśli dostawca używa ciągu jako nazwy typu elementu zamiast nazwy typu XSD "string".
Element CollectionDataContractAttribute jest również przeznaczony do użycia z typami słowników do obsługi kolekcji kluczy. Typy słowników to klasy, które implementują IDictionary interfejs lub IDictionary<TKey,TValue> , na przykład Dictionary<TKey,TValue>. KeyName Użyj właściwości iValueName, aby ustawić nazwy niestandardowe podczas korzystania z Dictionary<TKey,TValue> klasy.
Aby uzyskać więcej informacji na temat korzystania z usługi DataContractSerializer, zobacz Using Data Contracts (Używanie kontraktów danych).
Konstruktory
CollectionDataContractAttribute() |
Inicjuje nowe wystąpienie klasy CollectionDataContractAttribute. |
Właściwości
IsItemNameSetExplicitly |
Pobiera informację, czy ItemName została jawnie ustawiona. |
IsKeyNameSetExplicitly |
Pobiera informację, czy KeyName została jawnie ustawiona. |
IsNameSetExplicitly |
Pobiera informację, czy Name została jawnie ustawiona. |
IsNamespaceSetExplicitly |
Pobiera informację, czy Namespace została jawnie ustawiona. |
IsReference |
Pobiera lub ustawia wartość wskazującą, czy zachować dane odwołania do obiektu. |
IsReferenceSetExplicitly |
Pobiera informację, czy odwołanie zostało jawnie ustawione. |
IsValueNameSetExplicitly |
Pobiera informację, czy ValueName została jawnie ustawiona. |
ItemName |
Pobiera lub ustawia niestandardową nazwę elementu kolekcji. |
KeyName |
Pobiera lub ustawia niestandardową nazwę klucza słownika. |
Name |
Pobiera lub ustawia nazwę kontraktu danych dla typu kolekcji. |
Namespace |
Pobiera lub ustawia przestrzeń nazw dla kontraktu danych. |
TypeId |
Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attributeelementu . (Odziedziczone po Attribute) |
ValueName |
Pobiera lub ustawia niestandardową nazwę nazwy wartości słownika. |
Metody
Equals(Object) |
Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi. (Odziedziczone po Attribute) |
GetHashCode() |
Zwraca wartość skrótu dla tego wystąpienia. (Odziedziczone po Attribute) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
IsDefaultAttribute() |
Podczas zastępowania w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną dla klasy pochodnej. (Odziedziczone po Attribute) |
Match(Object) |
Po przesłonięciu w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi. (Odziedziczone po Attribute) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Jawne implementacje interfejsu
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania. (Odziedziczone po Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Pobiera informacje o typie dla obiektu, który może służyć do pobierania informacji o typie dla interfejsu. (Odziedziczone po Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1). (Odziedziczone po Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt. (Odziedziczone po Attribute) |