Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

ServiceKnownTypeAttribute-Klasse

 

Veröffentlicht: Oktober 2016

Gibt die von einem Dienst bei der Serialisierung beziehungsweise Deserialisierung zu verwendenden bekannten Typen an.

Namespace:   System.ServiceModel
Assembly:  System.ServiceModel (in System.ServiceModel.dll)

System.Object
  System.Attribute
    System.ServiceModel.ServiceKnownTypeAttribute

[AttributeUsageAttribute(AttributeTargets.Class | AttributeTargets.Method | AttributeTargets.Interface, 
	Inherited = true, AllowMultiple = true)]
public sealed class ServiceKnownTypeAttribute : Attribute

NameBeschreibung
System_CAPS_pubmethodServiceKnownTypeAttribute(String)

Initialisiert eine neue Instanz der ServiceKnownTypeAttribute-Klasse und gibt den Namen einer Methode an, die bekannte Typen zurückgibt.

System_CAPS_pubmethodServiceKnownTypeAttribute(String, Type)

Initialisiert eine neue Instanz der ServiceKnownTypeAttribute-Klasse mit dem Namen einer Methode, die bekannte Typen zurückgibt, und den Typ, der die Methoden beinhaltet, die die bekannten Typen zurückgeben.

System_CAPS_pubmethodServiceKnownTypeAttribute(Type)

Initialisiert eine neue Instanz der ServiceKnownTypeAttribute-Klasse mit dem angegebenen bekannten Typ.

NameBeschreibung
System_CAPS_pubpropertyDeclaringType

Ruft den Typ ab, der die Methoden enthält, die die bekannten Typen zurückgeben.

System_CAPS_pubpropertyMethodName

Ruft den Namen einer Methode ab, die die Auflistung bekannter Typen zurückgibt.

System_CAPS_pubpropertyType

Der bekannte Typ, der in einem Objektdiagramm enthalten sein kann.

System_CAPS_pubpropertyTypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.(Geerbt von „Attribute“.)

NameBeschreibung
System_CAPS_pubmethodEquals(Object)

Diese API unterstützt die Produkt Infrastruktur und sollte nicht direkt aus dem Code verwendet werden. Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.(Geerbt von „Attribute“.)

System_CAPS_pubmethodGetHashCode()

Gibt den Hashcode für diese Instanz zurück.(Geerbt von „Attribute“.)

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.)

System_CAPS_pubmethodIsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.(Geerbt von „Attribute“.)

System_CAPS_pubmethodMatch(Object)

Ruft beim Überschreiben in einer abgeleiteten Klasse gibt einen Wert, der angibt, ob diese Instanz gleich ein angegebenen Objekt ist.(Geerbt von „Attribute“.)

System_CAPS_pubmethodToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.(Geerbt von „Object“.)

NameBeschreibung
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können.(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.(Geerbt von „Attribute“.)

Der ServiceKnownTypeAttribute ist für die Verwendung bei der Erstellung von Windows Communication Foundation (WCF)-Dienstverträgen (Schnittstellen, mit denen der Dienst und seine Methoden definiert werden) bestimmt. Die bekannten Typen sind Typen, die bei der Serialisierung beziehungsweise Deserialisierung in einem Objektdiagramm vorhanden sein können. Weitere Informationen über bekannte Typen finden Sie unter Bekannte Typen in Datenverträgen.

Zur Verwendung der MethodName-Eigenschaft erstellen Sie eine Klasse mit einer Methode (oder mehreren Methoden), die einen Array von Typen zurückgibt (ausschließlich bekannte Typen). Legen Sie bei der Zuweisung des Attributs für den methodName den Namen einer Methode fest, die eine Liste der Typen zurückgibt, und legen Sie für den declaringType den Typ fest, der die Methode enthält. Die Methode muss einen Typ zurückgeben, der die IEnumerable<T>-Schnittstelle implementiert. Die Methode muss außerdem einen Parameter des Typs ICustomAttributeProvider beinhalten.

Sie können das Attribut auch mehrmals zu einer Schnittstelle, Klasse oder Methode zuweisen und dabei jedes Mal einen neuen bekannten Typ angeben.

System_CAPS_noteHinweis

Sie können das Wort ServiceKnownType anstelle des längeren Worts ServiceKnownTypeAttribute im Microsoft Visual Basic- oder C#-Code verwenden.

Im nachstehenden Beispiel wurde das ServiceKnownTypeAttribute-Attribut einer Schnittstelle zugewiesen, in der das Attribut einen Methodennamen und einen deklarierenden Typ angibt.

// Define a service contract and apply the ServiceKnownTypeAttribute
// to specify types to include when generating client code. 
// The types must have the DataContractAttribute and DataMemberAttribute
// applied to be serialized and deserialized. The attribute specifies the 
// name of a method (GetKnownTypes) in a class (Helper) defined below.
[ServiceKnownType("GetKnownTypes", typeof(Helper))]
[ServiceContract()]
public interface ICatalog
{
    // Any object type can be inserted into a Hashtable. The 
    // ServiceKnownTypeAttribute allows you to include those types
    // with the client code.
    [OperationContract]
    Hashtable GetItems();
}

// This class has the method named GetKnownTypes that returns a generic IEnumerable.
static class Helper
{
    public static IEnumerable<Type> GetKnownTypes(ICustomAttributeProvider provider)
    {
        System.Collections.Generic.List<System.Type> knownTypes =
            new System.Collections.Generic.List<System.Type>();
        // Add any types to include here.
        knownTypes.Add(typeof(Widget));
        knownTypes.Add(typeof(Machine));
        return knownTypes;
    }
}

[DataContract()]
public class Widget
{
    [DataMember]
    public string Id;
    [DataMember]
    public string Catalog;
}

[DataContract()]
public class Machine : Widget
{
    [DataMember]
    public string Maker;
}

Weisen Sie das Attribut alternativ der Schnittstelle zu, die angibt, welche bekannten Typen berücksichtigt werden sollen.

// Apply the ServiceKnownTypeAttribute to the 
// interface specifying the type to include. Apply 
// the attribute more than once if needed.
[ServiceKnownType(typeof(Widget))]
[ServiceKnownType(typeof(Machine))]
[ServiceContract()]
public interface ICatalog2
{
    // Any object type can be inserted into a Hashtable. The 
    // ServiceKnownTypeAttribute allows you to include those types
    // with the client code.
    [OperationContract]
    Hashtable GetItems();
}

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 3.0
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0

Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.

Zurück zum Anfang
Anzeigen: