Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.ServiceModel.Activities / System / ServiceModel / Activities / Description / ControlOperationBehavior.cs / 1305376 / ControlOperationBehavior.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.ServiceModel.Activities.Description { using System.Runtime; using System.ServiceModel.Activities.Dispatcher; using System.ServiceModel.Channels; using System.ServiceModel.Description; using System.ServiceModel.Dispatcher; class ControlOperationBehavior : IOperationBehavior { bool isWrappedMode; //There are two modes of operation. // 1) IWorkflowControlServiceOperations :: Implemented completley by the ControlOperationInvoker. // 2) Infrastructure endpoints(Delay/Compensation/OCS) where we wrap their invoker over ControlOperationInvoker. public ControlOperationBehavior(bool isWrappedMode) { this.isWrappedMode = isWrappedMode; } public void AddBindingParameters(OperationDescription operationDescription, BindingParameterCollection bindingParameters) { } public void ApplyClientBehavior(OperationDescription operationDescription, ClientOperation clientOperation) { } public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) { ServiceHostBase serviceHost = dispatchOperation.Parent.ChannelDispatcher.Host; if (!(serviceHost is WorkflowServiceHost)) { throw FxTrace.Exception.AsError( new InvalidOperationException(SR.WorkflowBehaviorWithNonWorkflowHost(typeof(ControlOperationBehavior).Name))); } ServiceEndpoint endpoint = null; foreach (ServiceEndpoint endpointToMatch in serviceHost.Description.Endpoints) { if (endpointToMatch.Id == dispatchOperation.Parent.EndpointDispatcher.Id) { endpoint = endpointToMatch; break; } } if (this.isWrappedMode) { CorrelationKeyCalculator keyCalculator = null; if (endpoint != null) { CorrelationQueryBehavior endpointQueryBehavior = endpoint.Behaviors.Find(); if (endpointQueryBehavior != null) { keyCalculator = endpointQueryBehavior.GetKeyCalculator(); } } //This will be the case for infrastructure endpoints like Compensation/Interop OCS endpoints. dispatchOperation.Invoker = new ControlOperationInvoker( operationDescription, endpoint, keyCalculator, dispatchOperation.Invoker, serviceHost); } else { //This will be for IWorkflowInstanceManagement endpoint operation. dispatchOperation.Invoker = new ControlOperationInvoker( operationDescription, endpoint, null, serviceHost); } } public void Validate(OperationDescription operationDescription) { } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- KnownBoxes.cs
- MeasurementDCInfo.cs
- BindValidationContext.cs
- Quaternion.cs
- UnsafeNativeMethods.cs
- SystemIPInterfaceStatistics.cs
- CategoryAttribute.cs
- EmbeddedMailObject.cs
- QueueProcessor.cs
- ValidatorCompatibilityHelper.cs
- OracleConnectionStringBuilder.cs
- UntypedNullExpression.cs
- IconHelper.cs
- DependencyProperty.cs
- TdsParserSessionPool.cs
- ImageListDesigner.cs
- ExecutedRoutedEventArgs.cs
- ClientApiGenerator.cs
- PrintPageEvent.cs
- XsltConvert.cs
- ConnectionPoint.cs
- ListBoxItemWrapperAutomationPeer.cs
- LogAppendAsyncResult.cs
- SqlClientPermission.cs
- AssemblyCollection.cs
- DirectoryGroupQuery.cs
- XamlSerializer.cs
- BindableTemplateBuilder.cs
- ExpressionBuilder.cs
- TypedDataSourceCodeGenerator.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- SmtpClient.cs
- XmlAttributeCache.cs
- SqlClientMetaDataCollectionNames.cs
- OperationInfoBase.cs
- MessageBox.cs
- CookieHandler.cs
- MarkupExtensionParser.cs
- RecognizedPhrase.cs
- Context.cs
- BatchWriter.cs
- MachineKeySection.cs
- TextAnchor.cs
- ProcessRequestArgs.cs
- IWorkflowDebuggerService.cs
- ParseChildrenAsPropertiesAttribute.cs
- CodeMemberProperty.cs
- RootNamespaceAttribute.cs
- FileIOPermission.cs
- Stack.cs
- PreservationFileWriter.cs
- Parameter.cs
- WizardDesigner.cs
- AccessText.cs
- TextTreeInsertElementUndoUnit.cs
- DataExpression.cs
- NativeObjectSecurity.cs
- GridViewCommandEventArgs.cs
- ByteStreamMessageUtility.cs
- ParameterBinding.cs
- MaskedTextBox.cs
- CodeMethodMap.cs
- StringPropertyBuilder.cs
- EventHandlerService.cs
- LineServices.cs
- PasswordBox.cs
- ZipArchive.cs
- AssertSection.cs
- AdapterDictionary.cs
- UriSection.cs
- OutputScopeManager.cs
- UpDownBase.cs
- InputMethod.cs
- MatrixAnimationUsingPath.cs
- BasicViewGenerator.cs
- TreeWalkHelper.cs
- DataGridViewCellCancelEventArgs.cs
- OdbcError.cs
- AnnotationResource.cs
- EdmFunction.cs
- ArraySet.cs
- HintTextMaxWidthConverter.cs
- ClientWindowsAuthenticationMembershipProvider.cs
- ModelEditingScope.cs
- MoveSizeWinEventHandler.cs
- DataObjectCopyingEventArgs.cs
- ToolStripItemImageRenderEventArgs.cs
- SecurityElement.cs
- XPathNodeHelper.cs
- ComboBoxRenderer.cs
- HttpCachePolicy.cs
- ReturnEventArgs.cs
- WebPartMenuStyle.cs
- WindowsIdentity.cs
- RewritingPass.cs
- PostBackTrigger.cs
- FilteredXmlReader.cs
- ObjectSecurity.cs
- ProcessHostServerConfig.cs
- ErrorFormatter.cs