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
- RunWorkerCompletedEventArgs.cs
- UriScheme.cs
- DrawingBrush.cs
- SqlDataReader.cs
- HybridWebProxyFinder.cs
- SHA384Cng.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- CallbackValidator.cs
- CompilerCollection.cs
- ListItemCollection.cs
- HtmlTernaryTree.cs
- SrgsNameValueTag.cs
- StylusTip.cs
- InplaceBitmapMetadataWriter.cs
- Point3DIndependentAnimationStorage.cs
- RepeaterItemCollection.cs
- State.cs
- RequestBringIntoViewEventArgs.cs
- PrinterResolution.cs
- PriorityRange.cs
- FormsAuthenticationEventArgs.cs
- RawStylusInput.cs
- InfoCardListRequest.cs
- BinaryObjectReader.cs
- RegexReplacement.cs
- OutputCacheModule.cs
- IIS7UserPrincipal.cs
- XmlSchemaValidationException.cs
- CodeParameterDeclarationExpression.cs
- TypefaceMetricsCache.cs
- SmtpReplyReader.cs
- CustomAttribute.cs
- XsltLibrary.cs
- HttpContextServiceHost.cs
- TraversalRequest.cs
- Point3DCollectionValueSerializer.cs
- SchemaTableColumn.cs
- UrlPath.cs
- ListBase.cs
- InputScopeNameConverter.cs
- WaitHandleCannotBeOpenedException.cs
- DesignerVerbCollection.cs
- HtmlInputHidden.cs
- GridViewColumn.cs
- SoapFault.cs
- Typography.cs
- ItemCheckEvent.cs
- BamlLocalizabilityResolver.cs
- SparseMemoryStream.cs
- MonthCalendar.cs
- UndoUnit.cs
- designeractionlistschangedeventargs.cs
- RequestQueryParser.cs
- ProxyHwnd.cs
- OleDbCommandBuilder.cs
- FrameAutomationPeer.cs
- SqlStatistics.cs
- RegexCapture.cs
- SocketElement.cs
- SocketElement.cs
- XmlCompatibilityReader.cs
- PointAnimationUsingKeyFrames.cs
- TextEditorSelection.cs
- SystemIcmpV6Statistics.cs
- CodeObject.cs
- WinEventHandler.cs
- StreamWithDictionary.cs
- SecurityAttributeGenerationHelper.cs
- MetadataUtilsSmi.cs
- CompareInfo.cs
- Package.cs
- EventSinkActivityDesigner.cs
- ResourceReferenceExpression.cs
- DataGridCell.cs
- IntegerValidatorAttribute.cs
- KernelTypeValidation.cs
- MemoryMappedView.cs
- RecordManager.cs
- SimpleHandlerFactory.cs
- ContextMenuStripGroupCollection.cs
- TypedOperationInfo.cs
- DataGridClipboardHelper.cs
- EventEntry.cs
- CellTreeNode.cs
- HttpHandlersSection.cs
- WinInet.cs
- ContentOperations.cs
- LookupNode.cs
- PropertyConverter.cs
- xdrvalidator.cs
- AppSettingsSection.cs
- DesignerSerializationManager.cs
- ClientUtils.cs
- SafeTimerHandle.cs
- UserControlBuildProvider.cs
- ConfigPathUtility.cs
- PathGradientBrush.cs
- MenuItemAutomationPeer.cs
- RegisteredExpandoAttribute.cs
- RuleSetBrowserDialog.cs