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
- DocumentViewerConstants.cs
- WeakReferenceKey.cs
- Path.cs
- UpdatePanelTrigger.cs
- DependencySource.cs
- IisTraceListener.cs
- StaticTextPointer.cs
- ScriptingJsonSerializationSection.cs
- ListSortDescriptionCollection.cs
- ListBindingConverter.cs
- TextCollapsingProperties.cs
- ModuleElement.cs
- NotifyInputEventArgs.cs
- AutomationElementCollection.cs
- ComPlusServiceHost.cs
- HashAlgorithm.cs
- SafeLibraryHandle.cs
- Dictionary.cs
- TextSelectionHelper.cs
- Roles.cs
- CodeSnippetExpression.cs
- TextParaLineResult.cs
- ListDataBindEventArgs.cs
- QueryAsyncResult.cs
- QueryStringConverter.cs
- SqlBinder.cs
- SoapRpcServiceAttribute.cs
- SHA1.cs
- Int32RectValueSerializer.cs
- NamedPipeTransportManager.cs
- UntrustedRecipientException.cs
- ToolStripItemCollection.cs
- TemplateNodeContextMenu.cs
- CqlLexerHelpers.cs
- Column.cs
- HttpPostLocalhostServerProtocol.cs
- SystemIPAddressInformation.cs
- DesignerPerfEventProvider.cs
- PersonalizationStateQuery.cs
- DecoderBestFitFallback.cs
- GroupItemAutomationPeer.cs
- NumericUpDownAcceleration.cs
- UnionCqlBlock.cs
- RichTextBox.cs
- ExceptionUtility.cs
- ConnectivityStatus.cs
- DiscoveryProxy.cs
- Validator.cs
- AttributeTable.cs
- XmlDataFileEditor.cs
- ErrorReporting.cs
- CodeTypeConstructor.cs
- GridLengthConverter.cs
- StrongTypingException.cs
- RSAPKCS1KeyExchangeFormatter.cs
- DataGridViewColumnHeaderCell.cs
- GeometryModel3D.cs
- SecurityContext.cs
- RestHandler.cs
- Grant.cs
- ObjectSecurity.cs
- ObjectQueryState.cs
- AssemblyHash.cs
- AssemblyBuilderData.cs
- SQLStringStorage.cs
- MulticastDelegate.cs
- RoleGroupCollection.cs
- FontWeightConverter.cs
- ArrayWithOffset.cs
- _ContextAwareResult.cs
- TriState.cs
- Model3DGroup.cs
- WebRequestModuleElementCollection.cs
- UnsafeNetInfoNativeMethods.cs
- ToolStripArrowRenderEventArgs.cs
- StylusSystemGestureEventArgs.cs
- Viewport3DVisual.cs
- WindowsListViewGroupSubsetLink.cs
- ValidationErrorCollection.cs
- HtmlInputCheckBox.cs
- TransactionException.cs
- PaperSize.cs
- TextTabProperties.cs
- ComplusEndpointConfigContainer.cs
- XmlSchemaSimpleTypeUnion.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- HotCommands.cs
- ContentFileHelper.cs
- AsymmetricAlgorithm.cs
- TreeChangeInfo.cs
- SoapInteropTypes.cs
- SynchronizationScope.cs
- ProxyGenerationError.cs
- RemotingConfiguration.cs
- UserInitiatedNavigationPermission.cs
- TypeDefinition.cs
- AnnotationComponentChooser.cs
- SystemException.cs
- SqlTopReducer.cs
- NavigationPropertyAccessor.cs