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
- RoutedEventConverter.cs
- EdmSchemaAttribute.cs
- CodeArgumentReferenceExpression.cs
- GlobalEventManager.cs
- DelegateSerializationHolder.cs
- VisualStyleElement.cs
- ProcessThreadCollection.cs
- SAPICategories.cs
- Rijndael.cs
- GridViewRowCollection.cs
- DrawingCollection.cs
- SystemIPv6InterfaceProperties.cs
- RelatedPropertyManager.cs
- DataBinder.cs
- ClientCredentialsSecurityTokenManager.cs
- COM2FontConverter.cs
- SchemaImporterExtensionElement.cs
- AffineTransform3D.cs
- DataColumnMappingCollection.cs
- Bidi.cs
- XPathScanner.cs
- MeasureItemEvent.cs
- FolderBrowserDialogDesigner.cs
- ToolBarButtonClickEvent.cs
- WeakHashtable.cs
- FocusChangedEventArgs.cs
- DesignerHelpers.cs
- SecurityException.cs
- ListItemCollection.cs
- InstanceBehavior.cs
- MemberDescriptor.cs
- TextUtf8RawTextWriter.cs
- DesignerUtils.cs
- GridView.cs
- TimeSpanOrInfiniteConverter.cs
- ConditionBrowserDialog.cs
- TextReader.cs
- XappLauncher.cs
- XmlWrappingReader.cs
- CustomAssemblyResolver.cs
- Stack.cs
- ContractCodeDomInfo.cs
- PermissionAttributes.cs
- LicenseException.cs
- MultiView.cs
- TracePayload.cs
- DateTimeValueSerializerContext.cs
- MetabaseSettingsIis7.cs
- HttpPostedFileWrapper.cs
- PolicyValidationException.cs
- Row.cs
- RawUIStateInputReport.cs
- FloatMinMaxAggregationOperator.cs
- CryptoConfig.cs
- TextSerializer.cs
- SqlConnectionManager.cs
- StorageBasedPackageProperties.cs
- QueryCreatedEventArgs.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- GuidelineSet.cs
- CounterSetInstanceCounterDataSet.cs
- CultureInfoConverter.cs
- Vertex.cs
- Track.cs
- CollectionChangedEventManager.cs
- NGCPageContentSerializerAsync.cs
- ViewLoader.cs
- ServiceRouteHandler.cs
- ButtonPopupAdapter.cs
- COM2Enum.cs
- SqlWorkflowInstanceStoreLock.cs
- XmlText.cs
- FilterQuery.cs
- Instrumentation.cs
- RectConverter.cs
- ClientUrlResolverWrapper.cs
- ProfileSettingsCollection.cs
- AnimatedTypeHelpers.cs
- DateTimeParse.cs
- AdornerDecorator.cs
- XmlAutoDetectWriter.cs
- LinearKeyFrames.cs
- LineServices.cs
- ListenerElementsCollection.cs
- LogSwitch.cs
- BasicExpressionVisitor.cs
- TypeTypeConverter.cs
- NetPeerTcpBinding.cs
- UnsignedPublishLicense.cs
- XmlLinkedNode.cs
- DefaultPrintController.cs
- HttpCookieCollection.cs
- MatrixTransform.cs
- XmlUrlResolver.cs
- PrivacyNoticeBindingElementImporter.cs
- AttachedAnnotation.cs
- ConfigXmlText.cs
- StopStoryboard.cs
- SchemaAttDef.cs
- PreviewPageInfo.cs