Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.ServiceModel.Activities / System / ServiceModel / Activities / WorkflowControlEndpoint.cs / 1305376 / WorkflowControlEndpoint.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.ServiceModel.Activities { using System.Diagnostics; using System.Globalization; using System.ServiceModel; using System.ServiceModel.Activities.Description; using System.ServiceModel.Channels; using System.ServiceModel.Description; using System.Runtime; [Fx.Tag.XamlVisible(false)] public class WorkflowControlEndpoint : ServiceEndpoint { static Uri defaultBaseUri; static ContractDescription workflowControlServiceContract; static object workflowContractDescriptionLock = new object(); public WorkflowControlEndpoint() : this(WorkflowControlEndpoint.GetDefaultBinding(), new EndpointAddress(new Uri(WorkflowControlEndpoint.DefaultBaseUri, new Uri(Guid.NewGuid().ToString(), UriKind.Relative)))) { } public WorkflowControlEndpoint(Binding binding, EndpointAddress address) : base(WorkflowControlEndpoint.WorkflowControlServiceContract, binding, address) { this.IsSystemEndpoint = true; } internal static ContractDescription WorkflowControlServiceContract { get { if (workflowControlServiceContract == null) { lock (workflowContractDescriptionLock) { if (workflowControlServiceContract == null) { ContractDescription tempControlServiceContract = ContractDescription.GetContract( typeof(IWorkflowInstanceManagement)); tempControlServiceContract.Behaviors.Add(new ServiceMetadataContractBehavior(true)); ApplyOperationBehaviors(tempControlServiceContract); workflowControlServiceContract = tempControlServiceContract; } } } return workflowControlServiceContract; } } static Uri DefaultBaseUri { get { if (defaultBaseUri == null) { defaultBaseUri = new Uri(string.Format(CultureInfo.InvariantCulture, "net.pipe://localhost/workflowControlServiceEndpoint/{0}/{1}", Process.GetCurrentProcess().Id, AppDomain.CurrentDomain.Id)); } return defaultBaseUri; } } static Binding GetDefaultBinding() { return new NetNamedPipeBinding(NetNamedPipeSecurityMode.None) { TransactionFlow = true }; } static void ApplyOperationBehaviors(ContractDescription contractDescription) { foreach (OperationDescription operationDescription in contractDescription.Operations) { //Except "Abandon" all the operations in this contract are Async. //All Transacted* operation are Transacted & Async. switch (operationDescription.Name) { case XD2.WorkflowInstanceManagementService.Abandon: case XD2.WorkflowInstanceManagementService.Cancel: case XD2.WorkflowInstanceManagementService.Run: case XD2.WorkflowInstanceManagementService.Suspend: case XD2.WorkflowInstanceManagementService.Terminate: case XD2.WorkflowInstanceManagementService.Unsuspend: EnsureDispatch(operationDescription); break; case XD2.WorkflowInstanceManagementService.TransactedCancel: case XD2.WorkflowInstanceManagementService.TransactedRun: case XD2.WorkflowInstanceManagementService.TransactedSuspend: case XD2.WorkflowInstanceManagementService.TransactedTerminate: case XD2.WorkflowInstanceManagementService.TransactedUnsuspend: EnsureDispatch(operationDescription); EnsureTransactedInvoke(operationDescription); break; } } } static void EnsureDispatch(OperationDescription operationDescription) { operationDescription.Behaviors.Add(new ControlOperationBehavior(false)); } static void EnsureTransactedInvoke(OperationDescription operationDescription) { OperationBehaviorAttribute operationAttribute = operationDescription.Behaviors.Find(); operationAttribute.TransactionScopeRequired = true; } } } // 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
- TemplatedAdorner.cs
- FrameworkTextComposition.cs
- PlaceHolder.cs
- FileSecurity.cs
- BeginStoryboard.cs
- ManipulationBoundaryFeedbackEventArgs.cs
- ListItemConverter.cs
- AsyncOperationContext.cs
- XmlWellformedWriter.cs
- TextMarkerSource.cs
- PropertyGridEditorPart.cs
- SqlDataSource.cs
- SingleAnimationUsingKeyFrames.cs
- CaseStatementProjectedSlot.cs
- SimpleExpression.cs
- ProxyWebPartManager.cs
- NavigationProperty.cs
- XPathNavigatorKeyComparer.cs
- ObjectConverter.cs
- AttributeCollection.cs
- RecordConverter.cs
- X509ClientCertificateAuthentication.cs
- CriticalHandle.cs
- PanelContainerDesigner.cs
- ArraySubsetEnumerator.cs
- SendMailErrorEventArgs.cs
- NameValueCollection.cs
- SoundPlayerAction.cs
- ConditionChanges.cs
- Int32CAMarshaler.cs
- KeyManager.cs
- ContentPlaceHolder.cs
- MatrixTransform3D.cs
- PartBasedPackageProperties.cs
- XmlnsDictionary.cs
- UserMapPath.cs
- XmlValidatingReaderImpl.cs
- Environment.cs
- DSASignatureFormatter.cs
- WebServiceData.cs
- IMembershipProvider.cs
- StagingAreaInputItem.cs
- Thickness.cs
- DesignerWebPartChrome.cs
- ToolStripGrip.cs
- ObjectHandle.cs
- NumericUpDownAcceleration.cs
- CertificateElement.cs
- QueuePathDialog.cs
- ButtonChrome.cs
- PasswordValidationException.cs
- Type.cs
- DefaultWorkflowSchedulerService.cs
- AnnotationComponentChooser.cs
- CompilationRelaxations.cs
- FormViewDeletedEventArgs.cs
- DesignOnlyAttribute.cs
- OptimizedTemplateContent.cs
- RequiredFieldValidator.cs
- X509CertificateStore.cs
- DataObjectSettingDataEventArgs.cs
- ObjectItemCollection.cs
- TitleStyle.cs
- EntityDataSourceSelectingEventArgs.cs
- SwitchElementsCollection.cs
- DetailsViewUpdateEventArgs.cs
- DbParameterHelper.cs
- HeaderedContentControl.cs
- ShaperBuffers.cs
- TemplateControlBuildProvider.cs
- SqlUtils.cs
- UrlPath.cs
- securitycriticaldata.cs
- WebConfigurationFileMap.cs
- versioninfo.cs
- DataContext.cs
- CultureInfoConverter.cs
- Aes.cs
- XPathParser.cs
- IsolationInterop.cs
- StylusEditingBehavior.cs
- SelectionPatternIdentifiers.cs
- XPathDocumentBuilder.cs
- ITextView.cs
- AlternateView.cs
- HttpDebugHandler.cs
- BulletedListDesigner.cs
- CheckBoxAutomationPeer.cs
- SqlDataRecord.cs
- BitmapEffectDrawing.cs
- HotCommands.cs
- ShadowGlyph.cs
- FontFamilyIdentifier.cs
- UnwrappedTypesXmlSerializerManager.cs
- XmlNodeChangedEventArgs.cs
- ProfileGroupSettingsCollection.cs
- BasicHttpMessageCredentialType.cs
- StylusShape.cs
- SqlCachedBuffer.cs
- BamlResourceContent.cs