QueuedDeliveryRequirements |实际含义

问题描述:

有人能让我知道QueuedDeliveryRequirements在DeliveryRequirements属性中表示什么吗?QueuedDeliveryRequirements |实际含义

MSDN says “指定服务的绑定是否必须支持排队的合约。”这让我更加困惑什么是“排队合同”。请解释。

谢谢!

很简单,当你定义一个服务接口,例如:

[ServiceContract] 
public interface ISomethingService 
{ 
    [OperationContract] 
    void Something(); 
} 

有将被暴露在什么样的交通工具结合界面的内在没有任何限制,这是一件好事,因为它使接口开发人员不必考虑如何在真实世界中实际部署和管理服务。

但是,在某些情况下,作为接口开发人员,您需要烘烤特定类型绑定的需求,并且一个很好的例子就是排队绑定。在WCF中,Queued绑定是那些利用windows自带的msmq平台的传输绑定。

您可能有充分的理由在服务设计时指定这一点 - 例如,您需要严格按序执行一次,将消息传递作为SLA的一部分。

如果是这样WCF允许您使用DeliveryRequirementsAttribute指定此:

[DeliveryRequirementsAttribute(
    QueuedDeliveryRequirements = QueuedDeliveryRequirementsMode.Required)] 
public class SomethingService : ISomethingService 
{ 
    public void Something(); 
} 

希望这有助于你。