1 //---------------------------------------------------------------- 2 // Copyright (c) Microsoft Corporation. All rights reserved. 3 //---------------------------------------------------------------- 4 namespace System.ServiceModel 5 { 6 using System.ServiceModel.Channels; 7 using System.ServiceModel.Dispatcher; 8 using System.ServiceModel.Description; 9 10 [AttributeUsage(ServiceModelAttributeTargets.OperationBehavior)] 11 public sealed class ReceiveContextEnabledAttribute : Attribute, IOperationBehavior 12 { ReceiveContextEnabledAttribute()13 public ReceiveContextEnabledAttribute() 14 { 15 16 } 17 18 public bool ManualControl 19 { 20 get; 21 set; 22 } 23 Validate(OperationDescription operationDescription)24 public void Validate(OperationDescription operationDescription) 25 { 26 27 } 28 ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation)29 public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) 30 { 31 if (operationDescription == null) 32 { 33 throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("operationDescription"); 34 } 35 36 if (dispatchOperation == null) 37 { 38 throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("dispatchOperation"); 39 } 40 41 if (this.ManualControl) 42 { 43 dispatchOperation.ReceiveContextAcknowledgementMode = ReceiveContextAcknowledgementMode.ManualAcknowledgement; 44 } 45 else 46 { 47 dispatchOperation.ReceiveContextAcknowledgementMode = ReceiveContextAcknowledgementMode.AutoAcknowledgeOnRPCComplete; 48 } 49 } 50 ApplyClientBehavior(OperationDescription operationDescription, ClientOperation clientOperation)51 public void ApplyClientBehavior(OperationDescription operationDescription, ClientOperation clientOperation) 52 { 53 54 } 55 AddBindingParameters(OperationDescription operationDescription, BindingParameterCollection bindingParameters)56 public void AddBindingParameters(OperationDescription operationDescription, BindingParameterCollection bindingParameters) 57 { 58 59 } 60 } 61 } 62