Freigeben über


DeliveryRequirementsAttribute.TargetContract Eigenschaft

Definition

Ruft den Typ ab, für den dies gültig ist, bzw. legt diesen fest.

public:
 property Type ^ TargetContract { Type ^ get(); void set(Type ^ value); };
public Type TargetContract { get; set; }
member this.TargetContract : Type with get, set
Public Property TargetContract As Type

Eigenschaftswert

Type

Der Type, für den das Attribut gilt.

Beispiele

Im folgenden Codebeispiel wird das Attribut verwendet, um WCF anzuweisen, zur Laufzeit zu bestätigen, dass die DeliveryRequirementsAttribute tatsächliche Bindung keine Warteschlangenverträge unterstützt, sondern sortierte Nachrichten unterstützt. Es wird auch der Zielvertrag angegeben, auf den diese Einschränkung angewendet werden soll.

using System;
using System.ServiceModel;

[ServiceContract]
interface ICalculatorService
{
    [OperationBehavior(TransactionAutoComplete = true)]
    int Add(int a, int b);

    [OperationContract]
    int Subtract(int a, int b);
}

[DeliveryRequirementsAttribute(
  QueuedDeliveryRequirements = QueuedDeliveryRequirementsMode.NotAllowed,
  RequireOrderedDelivery = true,
  TargetContract= typeof(ICalculatorService)
)]
class CalculatorService : ICalculatorService
{
    public int Add(int a, int b)
    {
        Console.WriteLine("Add called.");
        return a + b;
    }

    public int Subtract(int a, int b)
    {
        Console.WriteLine("Subtract called.");
        return a - b;
    }

    public int Multiply(int a, int b)
    {
        return a * b;
    }
}
Imports System.ServiceModel

<ServiceContract()> _
Public Interface ICalculatorService

    <OperationBehavior(TransactionAutoComplete:=True)> _
    Function Add(ByVal a As Integer, ByVal b As Integer) As Integer

    <OperationContract()> _
    Function Subtract(ByVal a As Integer, ByVal b As Integer) As Integer
End Interface

<DeliveryRequirementsAttribute( _
    QueuedDeliveryRequirements:=QueuedDeliveryRequirementsMode.NotAllowed, _
    RequireOrderedDelivery:=True, _
    TargetContract:=GetType(ICalculatorService) _
)> _
Class CalculatorService

    Public Function add(ByVal a As Integer, ByVal b As Integer) As Integer
        Console.WriteLine("Add called")
        Return a + b
    End Function

    Public Function Subtract(ByVal a As Integer, ByVal b As Integer) As Integer
        Console.WriteLine("Subtract called.")
        Return a - b
    End Function

    Public Function Multiply(ByVal a As Integer, ByVal b As Integer) As Integer
        Return a * b
    End Function
End Class

Hinweise

Eine Dienstklasse kann eine beliebige Anzahl von Dienstvertragsschnittstellen implementieren. Verwenden Sie die TargetContract-Eigenschaft, um zu validieren, dass Endpunkte mit TargetContract Bindungen haben, die die Anforderungen unterstützen. Dieses Attribut kann beliebig oft für dieselbe Klasse verwendet werden.

Gilt für