DeliveryRequirementsAttribute Класс

Определение

Задает требования к функциям, которые должны поддерживаться привязками для реализации службы или клиента.

public ref class DeliveryRequirementsAttribute sealed : Attribute, System::ServiceModel::Description::IContractBehavior
public ref class DeliveryRequirementsAttribute sealed : Attribute, System::ServiceModel::Description::IContractBehavior, System::ServiceModel::Description::IContractBehaviorAttribute
public sealed class DeliveryRequirementsAttribute : Attribute, System.ServiceModel.Description.IContractBehavior
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Interface, AllowMultiple=true)]
public sealed class DeliveryRequirementsAttribute : Attribute, System.ServiceModel.Description.IContractBehavior, System.ServiceModel.Description.IContractBehaviorAttribute
type DeliveryRequirementsAttribute = class
    inherit Attribute
    interface IContractBehavior
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Interface, AllowMultiple=true)>]
type DeliveryRequirementsAttribute = class
    inherit Attribute
    interface IContractBehavior
    interface IContractBehaviorAttribute
Public NotInheritable Class DeliveryRequirementsAttribute
Inherits Attribute
Implements IContractBehavior
Public NotInheritable Class DeliveryRequirementsAttribute
Inherits Attribute
Implements IContractBehavior, IContractBehaviorAttribute
Наследование
DeliveryRequirementsAttribute
Атрибуты
Реализации

Примеры

using System;
using System.ServiceModel;

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

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

[DeliveryRequirementsAttribute(
  QueuedDeliveryRequirements=QueuedDeliveryRequirementsMode.NotAllowed,
  RequireOrderedDelivery=true
)]
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()> _
    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

<DeliveryRequirements( _
    QueuedDeliveryRequirements:=QueuedDeliveryRequirementsMode.NotAllowed, _
    RequireOrderedDelivery:=True _
)> _
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

Комментарии

Используйте инструкцию DeliveryRequirementsAttribute Windows Communication Foundation (WCF) для подтверждения того, что привязка предоставляет функции, необходимые для реализации службы или клиента. DeliveryRequirementsAttribute Если атрибут обнаруживается, когда описание службы загружается из файла конфигурации приложения или создается программным способом в коде, WCF проверяет настроенную привязку и поддерживает все компоненты, которые указывает атрибут. Например, служба может требовать, чтобы привязки поддерживали организацию очереди. Использование DeliveryRequirementsAttribute позволяет WCF подтвердить соблюдение следующих требований:

  • свойство QueuedDeliveryRequirements задает требования к организации очереди, которые привязка должна удовлетворять;

  • свойство RequireOrderedDelivery указывает, должна ли привязка поддерживать упорядоченный обмен сообщениями;

  • свойство TargetContract указывает, к какому типу относятся требования.

Атрибут DeliveryRequirementsAttribute применен к классу, который может реализовать любое число интерфейсов контрактов служб. DeliveryRequirementsAttribute может применяться ко всем контрактам, которые реализуются классом, или только к одному из них. Этот атрибут может применяться для класса несколько раз.

Конструкторы

DeliveryRequirementsAttribute()

Инициализирует новый экземпляр класса DeliveryRequirementsAttribute.

Свойства

QueuedDeliveryRequirements

Указывает, должна ли привязка для службы поддерживать контракты с формированием очереди.

RequireOrderedDelivery

Указывает, должна ли привязка поддерживать упорядоченные сообщения.

TargetContract

Возвращает или задает тип, для которого применяется атрибут.

TypeId

В случае реализации в производном классе возвращает уникальный идентификатор для этого атрибута Attribute.

(Унаследовано от Attribute)

Методы

Equals(Object)

Возвращает значение, показывающее, равен ли экземпляр указанному объекту.

(Унаследовано от Attribute)
GetHashCode()

Возвращает хэш-код данного экземпляра.

(Унаследовано от Attribute)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
IsDefaultAttribute()

При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса.

(Унаследовано от Attribute)
Match(Object)

При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту.

(Унаследовано от Attribute)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.

(Унаследовано от Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Возвращает сведения о типе объекта, которые можно использовать для получения сведений о типе интерфейса.

(Унаследовано от Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).

(Унаследовано от Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к открытым свойствам и методам объекта.

(Унаследовано от Attribute)
IContractBehavior.AddBindingParameters(ContractDescription, ServiceEndpoint, BindingParameterCollection)

Реализует метод IContractBehavior.AddBindingParameters(ContractDescription, ServiceEndpoint, BindingParameterCollection) для правильного присоединения параметров привязки.

IContractBehavior.ApplyClientBehavior(ContractDescription, ServiceEndpoint, ClientRuntime)

Реализация метода IContractBehavior.ApplyClientBehavior(ContractDescription, ServiceEndpoint, ClientRuntime) для поддержки клиента.

IContractBehavior.ApplyDispatchBehavior(ContractDescription, ServiceEndpoint, DispatchRuntime)

Реализация метода ApplyDispatchBehavior(ContractDescription, ServiceEndpoint, DispatchRuntime), который разрешает поддержку службы.

IContractBehavior.Validate(ContractDescription, ServiceEndpoint)

Реализует метод IContractBehavior.Validate(ContractDescription, ServiceEndpoint) для разрешения поддержки проверки.

Применяется к