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
- ChineseLunisolarCalendar.cs
- Accessors.cs
- JsonFaultDetail.cs
- ZoomPercentageConverter.cs
- HttpListener.cs
- MimeFormImporter.cs
- AssociationEndMember.cs
- ManipulationBoundaryFeedbackEventArgs.cs
- DurableInstancingOptions.cs
- BidPrivateBase.cs
- FormatConvertedBitmap.cs
- DefaultAsyncDataDispatcher.cs
- graph.cs
- AnimatedTypeHelpers.cs
- DoubleCollection.cs
- IsolatedStorageException.cs
- ValidationErrorEventArgs.cs
- XamlTypeMapper.cs
- SocketInformation.cs
- SolidColorBrush.cs
- GridViewSelectEventArgs.cs
- IPPacketInformation.cs
- TextBoxLine.cs
- HMAC.cs
- GroupDescription.cs
- SqlFormatter.cs
- FileClassifier.cs
- StaticFileHandler.cs
- MappingException.cs
- Debug.cs
- QuaternionAnimationBase.cs
- ButtonBase.cs
- DataGridViewButtonColumn.cs
- _ShellExpression.cs
- TemplateField.cs
- SelectionGlyph.cs
- SqlMethods.cs
- VectorAnimationBase.cs
- TextElementCollection.cs
- HotSpotCollection.cs
- Visual3DCollection.cs
- ExceptionUtil.cs
- SplitterEvent.cs
- XmlILStorageConverter.cs
- FixedDSBuilder.cs
- TriggerBase.cs
- ObjectDataSourceStatusEventArgs.cs
- GeneralTransformGroup.cs
- XmlMembersMapping.cs
- DataControlFieldHeaderCell.cs
- RuleSetDialog.cs
- FamilyMap.cs
- AliasExpr.cs
- Rfc2898DeriveBytes.cs
- UserValidatedEventArgs.cs
- _ConnectOverlappedAsyncResult.cs
- MenuItem.cs
- XmlDataDocument.cs
- WsatServiceCertificate.cs
- COM2Properties.cs
- IgnoreSection.cs
- FixedSOMTableRow.cs
- TraceLevelStore.cs
- XdrBuilder.cs
- SelectionItemPattern.cs
- PassportPrincipal.cs
- AlternateViewCollection.cs
- FakeModelPropertyImpl.cs
- HealthMonitoringSection.cs
- RSAOAEPKeyExchangeFormatter.cs
- DelayDesigner.cs
- ExtenderControl.cs
- SettingsAttributes.cs
- COM2TypeInfoProcessor.cs
- Membership.cs
- TextServicesDisplayAttribute.cs
- WebPartConnectionsEventArgs.cs
- PropertyMap.cs
- SHA512.cs
- UserControlDesigner.cs
- AttachInfo.cs
- PrimitiveSchema.cs
- QueryCoreOp.cs
- DataServiceResponse.cs
- MonthCalendar.cs
- NotImplementedException.cs
- ValidationSummary.cs
- StatusBarAutomationPeer.cs
- SafeSecurityHandles.cs
- Table.cs
- GacUtil.cs
- BulletChrome.cs
- ProviderUtil.cs
- MdiWindowListItemConverter.cs
- DeclaredTypeValidator.cs
- Console.cs
- DataException.cs
- PartBasedPackageProperties.cs
- X509CertificateCollection.cs
- EqualityComparer.cs