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

OperationContractAttribute-Klasse

 

Veröffentlicht: Oktober 2016

Gibt an, dass eine Methode einen Vorgang definiert, der Bestandteil eines Dienstvertrags in einer Windows Communication Foundation (WCF)-Anwendung ist.

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

System.Object
  System.Attribute
    System.ServiceModel.OperationContractAttribute

[AttributeUsageAttribute(AttributeTargets.Method)]
public sealed class OperationContractAttribute : Attribute

NameBeschreibung
System_CAPS_pubmethodOperationContractAttribute()

Initialisiert eine neue Instanz der OperationContractAttribute-Klasse.

NameBeschreibung
System_CAPS_pubpropertyAction

Ruft ab oder legt die WS-Adressierungsaktion der Anforderungsnachricht fest.

System_CAPS_pubpropertyAsyncPattern

Gibt an, dass ein Vorgang asynchron implementiert wird eine Begin<MethodName> und End<MethodName> in einem Dienstvertrag das Methodenpaar.

System_CAPS_pubpropertyHasProtectionLevel

Ruft einen Wert ab, der angibt, ob die Nachrichten für diesen Vorgang verschlüsselt oder signiert werden müssen oder beides.

System_CAPS_pubpropertyIsInitiating

Ruft ab oder legt einen Wert, der angibt, ob die Methode einen Vorgang, der eine Sitzung auf dem Server initiieren kann implementiert (sofern eine solche Sitzung vorhanden ist).

System_CAPS_pubpropertyIsOneWay

Ruft einen Wert ab, der angibt, ob ein Vorgang eine Antwortnachricht zurückgibt, oder legt diesen fest.

System_CAPS_pubpropertyIsTerminating

Ruft einen Wert ab, der angibt, ob der Dienstvorgang bewirkt, dass der Server die Sitzung schließt, nachdem die Antwortnachricht gesendet wurde.

System_CAPS_pubpropertyName

Ruft den Namen des Vorgangs ab oder legt diesen fest.

System_CAPS_pubpropertyProtectionLevel

Ruft einen Wert ab, der angibt, ob die Nachrichten eines Vorgangs verschlüsselt oder signiert werden müssen oder beides beziehungsweise legt ihn fest.

System_CAPS_pubpropertyReplyAction

Ruft ab oder legt den Wert der SOAP-Aktion für die Antwortnachricht des Vorgangs fest.

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“.)

Wenden Sie den OperationContractAttribute auf eine Methode an, um anzugeben, dass mit einer Methode ein Dienstvorgang als Bestandteil eines Dienstvertrags (angegeben mit einem ServiceContractAttribute-Attribut) implementiert wird.

Verwenden Sie die OperationContractAttribute-Eigenschaften, um die Struktur des Vorgangs und die in Metadaten ausgedrückten Werte zu steuern:

  • Die Action-Eigenschaft gibt die Aktion an, die diesen Vorgang eindeutig identifiziert.WCF sendet Anforderungsnachrichten an Methoden basierend auf deren Aktion.

  • Mit der AsyncPattern-Eigenschaft wird angegeben, dass der Vorgang implementiert wird oder asynchron mit einem Begin/End-Methodenpaar aufgerufen werden kann.

  • Die HasProtectionLevel-Eigenschaft gibt an, ob die ProtectionLevel-Eigenschaft ausdrücklich festgelegt wurde.

  • Die IsOneWay-Eigenschaft gibt an, dass der Vorgang nur aus einer einzelnen Eingabenachricht besteht. Der Vorgang verfügt über keine zugeordnete Ausgabenachricht.

  • Die IsInitiating-Eigenschaft gibt an, ob dieser Vorgang der anfängliche Vorgang in einer Sitzung sein kann.

  • Die IsTerminating-Eigenschaft gibt an, ob WCF versucht, die aktuelle Sitzung zu beenden, nachdem der Vorgang abgeschlossen wurde.

  • Die ProtectionLevel-Eigenschaft gibt die Sicherheit auf Nachrichtenebene an, die ein Vorgang während der Laufzeit erfordert.

  • Die ReplyAction-Eigenschaft gibt die Aktion der Antwortnachricht für den Vorgang an.

Das OperationContractAttribute-Attribut deklariert, dass eine Methode ein Vorgang in einem Dienstvertrag ist. Nur Methoden, die dem OperationContractAttribute attributiert werden, werden als Dienstvorgänge verfügbar gemacht. Mit einem Dienstvertrag ohne mit OperationContractAttribute markierte Methoden werden keine Vorgänge verfügbar gemacht.

Die AsyncPattern -Eigenschaft gibt an, dass ein Paar Begin<MethodName> und End<MethodName> Methoden bilden einen einzelnen, asynchron implementierten Vorgang (sowohl auf dem Client oder Dienst). Die Fähigkeit eines Diensts, Vorgänge asynchron zu implementieren, ist ein Dienstimplementierungsdetail und wird nicht in den Metadaten (wie z.&#160;B. WSDL (Web Services Description Language)) verfügbar gemacht.

Ähnlich können Clients Vorgänge unabhängig von der Implementierung der Dienstmethode asynchron aufrufen. Der asynchrone Aufruf von Dienstvorgängen auf dem Client wird empfohlen, wenn eine Dienstmethode einige Zeit beansprucht, jedoch Informationen direkt an den Client zurückgeben muss. Ausführliche Informationen finden Sie unter AsyncPattern.

Die IsOneWay-Eigenschaft gibt an, dass eine Methode überhaupt keinen Wert zurückgibt. Dies bezieht sich auch auf eine leere zugrunde liegende Antwortnachricht. Dieser Methodentyp ist für Benachrichtigungen oder ereignisbezogene Kommunikation nützlich. Methoden dieser Art können keine Antwortnachricht zurückgeben. Folglich muss die Deklaration der Methode void zurückgeben.

System_CAPS_importantWichtig

Wenn den Informationsspeicher in diesem Attribut programmgesteuert abrufen zu können, verwenden die ContractDescription Klasse anstelle von Reflektion.

System_CAPS_noteHinweis

Wenn für die IsOneWay-Eigenschaft false festgelegt wird (Standardeinstellung), liegen auch bei Methoden, die void zurückgeben, bidirektionale Methoden auf der zugrunde liegenden Nachrichtenebene vor. In diesem Fall erstellt und sendet die Infrastruktur eine leere Nachricht, um dem Aufrufer mitzuteilen, dass die Methode einen Wert zurückgegeben hat. Mit dieser Vorgehensweise können die Anwendung und die Infrastruktur Fehlerinformationen (wie z.&#160;B. einen SOAP-Fehler) an den Client zurücksenden. Die Festlegung von IsOneWay auf true ist die einzige Möglichkeit, die Erstellung und Versendung einer Antwortnachricht zu verhindern. Weitere Informationen finden Sie unter Unidirektionale Dienste.

Mit der Action-Eigenschaft und der ReplyAction-Eigenschaft können nicht nur die Standardaktion von SOAP-Nachrichten geändert werden, sondern können auch Handler für unerkannte Nachrichten erstellt oder das Hinzufügen von Aktionen für die direkte Nachrichtenprogrammierung deaktiviert werden. Verhindern Sie mit der IsInitiating-Eigenschaft, dass Clients vor anderen Vorgängen einen besonderen Dienstvorgang aufrufen. Verwenden Sie die IsTerminating-Eigenschaft, um von WCF den Kanal schließen zu lassen, nachdem Clients einen bestimmten Dienstvorgang aufgerufen haben. Weitere Informationen finden Sie unter Verwenden von Sitzungen.

Mit der ProtectionLevel-Eigenschaft können Sie für den Dienstvertrag angeben, ob die Vorgangsnachrichten signiert, verschlüsselt oder signiert und verschlüsselt werden sollen. Kann von einer Bindung die vom Vertrag geforderte Sicherheitsebene nicht bereitgestellt werden, wird während der Laufzeit eine Ausnahme ausgelöst. Weitere Informationen finden Sie unter ProtectionLevel und Grundlagen der Schutzebene.

Im folgenden Codebeispiel ist ein einfacher Dienstvertrag mit einem Vorgang dargestellt.

using System;
using System.Collections.Generic;
using System.Net.Security;
using System.ServiceModel;
using System.Text;

namespace Microsoft.WCF.Documentation
{
  [ServiceContract(Namespace="Microsoft.WCF.Documentation")]
  public interface ISampleService{
    // This operation specifies an explicit protection level requirement.
    [OperationContract(ProtectionLevel=ProtectionLevel.EncryptAndSign)]
    string SampleMethod(string msg);
  }

  class SampleService : ISampleService
  {
  #region ISampleService Members

  public string  SampleMethod(string msg)
  {
    Console.WriteLine("Called with: {0}", msg);
 	  return "The service greets you: " + msg;
  }

  #endregion
  }
}

Das folgende Beispiel enthält einen Dienst, der einen impliziten Dienstvertrag implementiert, mit dem drei Vorgänge angegeben werden. Zwei der Vorgänge sind bidirektionale Vorgänge, die zugrunde liegende Antworten an den Aufrufer zurückgeben, und zwar unabhängig davon, wie der Rückgabewert lautet. Der dritte Vorgang empfängt einen Aufruf, eine zugrunde liegende eingehende Nachricht, gibt aber keine zugrunde liegende Antwortnachricht zurück.

[ServiceContractAttribute]
public class OneAndTwoWay
{
  // The client waits until a response message appears.
  [OperationContractAttribute]
  public int MethodOne (int x, out int y)
  {
    y = 34;
    return 0;
  }

  // The client waits until an empty response message appears.
  [OperationContractAttribute]
  public void MethodTwo (int x)
  {
    return;
  }

  // The client returns as soon as an outbound message
  // is dispatched to the service; no response
  // message is generated or sent from the service.
  [OperationContractAttribute(IsOneWay=true)]
  public void MethodThree (int x)
  {
    return;
  }
}

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: