(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

CollectionDataContractAttribute-Klasse

Ermöglich bei Anwendung auf einen Auflistungstyp die benutzerdefinierte Angabe der Auflistungselemente. Dieses Attribut kann nur auf Typen angewendet werden, die vom DataContractSerializer als gültige, serialisierbare Auflistungen erkannt werden.

System.Object
  System.Attribute
    System.Runtime.Serialization.CollectionDataContractAttribute

Namespace:  System.Runtime.Serialization
Assembly:  System.Runtime.Serialization (in System.Runtime.Serialization.dll)

[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Struct, Inherited = false, 
	AllowMultiple = false)]
public sealed class CollectionDataContractAttribute : Attribute

Der CollectionDataContractAttribute-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsCollectionDataContractAttributeInitialisiert eine neue Instanz der CollectionDataContractAttribute-Klasse.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsIsReferenceRuft einen Wert ab oder legt einen Wert fest, der angibt, ob Objektverweisdaten beizubehalten sind.
Öffentliche EigenschaftUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsItemNameRuft einen benutzerdefinierten Namen für ein Auflistungselement ab oder legt ihn fest.
Öffentliche EigenschaftUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsKeyNameRuft den benutzerdefinierten Namen für einen Wörterbuchschlüsselnamen ab oder legt ihn fest.
Öffentliche EigenschaftUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsNameRuft den Namen des Datenvertrags für den Auflistungstyp ab oder legt ihn fest.
Öffentliche EigenschaftUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsNamespaceRuft den Namespace für den Datenvertrag ab oder legt ihn fest.
Öffentliche EigenschaftTypeIdBei Implementierung in einer abgeleiteten Klasse wird ein eindeutiger Bezeichner für dieses Attribute abgerufen. (Von Attribute geerbt.)
Öffentliche EigenschaftUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsValueNameRuft den benutzerdefinierten Namen für einen Wörterbuchwertnamen ab oder legt ihn fest.
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsEqualsInfrastruktur. Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist. (Von Attribute geerbt.)
Öffentliche MethodeUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetHashCodeGibt den Hashcode für diese Instanz zurück. (Von Attribute geerbt.)
Öffentliche MethodeUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeIsDefaultAttributeBeim Überschreiben in einer abgeleiteten Klasse wird angegeben, ob der Wert dieser Instanz der Standardwert für die abgeleitete Klasse ist. (Von Attribute geerbt.)
Öffentliche MethodeMatchBeim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht. (Von Attribute geerbt.)
Öffentliche MethodeUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Zum Seitenanfang

  NameBeschreibung
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetIDsOfNamesOrdnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu. (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetTypeInfoRuft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können. (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetTypeInfoCountRuft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1). (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.InvokeStellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit. (Von Attribute geerbt.)
Zum Seitenanfang

Das CollectionDataContractAttribute dient dazu, die Interoperabilität beim Arbeiten mit Daten von nicht-WCF-Anbietern zu erleichtern und die genaue Form der serialisierten Instanzen zu steuern. Deshalb können Sie mit der ItemName-Eigenschaft die Namen der sich wiederholenden Elemente in einer Auflistung kontrollieren. Dies ist besonders dann sinnvoll, wenn der Anbieter den XML-Elementtypnamen nicht als Arrayelementnamen verwendet: wenn der Anbieter beispielsweise anstelle des XSD-Typnamens "string" als Elementtypnamen "String" verwendet.

Der CollectionDataContractAttribute ist auch für die Verwendung mit Wörterbuchtypen zur Behandlung verschlüsselter Auflistungen vorgesehen. Wörterbuchtypen sind Klassen, die entweder den IDictionary oder die IDictionary<TKey, TValue>-Schnittstelle implementieren, z. B. Dictionary<TKey, TValue>. Verwenden Sie die KeyName-Eigenschaft und die ValueName-Eigenschaft, um benutzerdefinierte Namen festzulegen, wenn Sie die Dictionary<TKey, TValue>-Klasse verwenden.

Weitere Informationen finden Sie unter zur Verwendung von DataContractSerializer finden Sie unter Verwenden von Datenverträgen.

Im folgenden Beispiel wird der CollectionDataContractAttribute auf eine Klasse angewendet, die von der List<T>-Klasse erbt. Der Code legt die Name-Eigenschaft und die ItemName-Eigenschaft auf benutzerdefinierte Werte fest.


[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);
        }
    }
}


Wenn der ServiceModel Metadata Utility-Tool (Svcutil.exe) verwendet wird, um Code für den Client zu generieren, ähnelt der Code folgendem Beispiel. Beachten Sie, dass sowohl der Name der Klasse als auch der ItemName geändert werden. Bei der Verwendung von Generika wird der Typparametername verwendet, um den resultierenden Typnamen zu erstellen.


// 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>
{
}


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft