Udostępnij za pośrednictwem


DeliveryRequirementsAttribute.TargetContract Właściwość

Definicja

Pobiera lub ustawia typ, do którego ma zastosowanie.

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

Wartość właściwości

Type

Element Type , do którego ma zastosowanie atrybut.

Przykłady

Poniższy przykład kodu używa atrybutu DeliveryRequirementsAttribute , aby instruować program WCF w celu potwierdzenia w czasie wykonywania, że rzeczywiste powiązanie nie obsługuje kontraktów w kolejce, ale obsługuje uporządkowane komunikaty. Określa również kontrakt docelowy, do którego należy zastosować to ograniczenie.

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

Uwagi

Klasa usługi może implementować dowolną liczbę interfejsów kontraktów usług. Użyj właściwości , TargetContract aby sprawdzić, czy punkty końcowe z TargetContract powiązaniami, które obsługują wymagania. Ten atrybut może być używany dowolną liczbę razy w tej samej klasie.

Dotyczy