Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx35 / System.WorkflowServices / System / ServiceModel / Dispatcher / WorkflowDurableInstance.cs / 1305376 / WorkflowDurableInstance.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Dispatcher { using System.Workflow.Runtime; using System.Runtime.Diagnostics; using System.ServiceModel.Diagnostics; using System.Diagnostics; class WorkflowDurableInstance : DurableInstance { WorkflowOperationAsyncResult currentOperationInvocation; WorkflowInstanceContextProvider instanceContextProvider; bool shouldCreateNew = false; object thisLock = new object(); WorkflowDefinitionContext workflowDefinition; WorkflowInstance workflowInstance = null; public WorkflowDurableInstance(WorkflowInstanceContextProvider instanceContextProvider, Guid instanceId, WorkflowDefinitionContext workflowDefinition, bool createNew) : base(instanceContextProvider, instanceId) { if (workflowDefinition == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("workflowDefinition"); } this.workflowDefinition = workflowDefinition; this.shouldCreateNew = createNew; this.instanceContextProvider = instanceContextProvider; } public WorkflowOperationAsyncResult CurrentOperationInvocation { get { return this.currentOperationInvocation; } set { this.currentOperationInvocation = value; } } public WorkflowInstance GetWorkflowInstance(bool canCreateInstance) { if (this.workflowInstance == null) { lock (thisLock) { if (shouldCreateNew) { if (canCreateInstance) { this.workflowInstance = this.workflowDefinition.CreateWorkflow(this.InstanceId); shouldCreateNew = false; if (DiagnosticUtility.ShouldTraceInformation) { string traceText = SR.GetString(SR.TraceCodeWorkflowDurableInstanceActivated, InstanceId); TraceUtility.TraceEvent(TraceEventType.Information, TraceCode.WorkflowDurableInstanceActivated, traceText, new StringTraceRecord("DurableInstanceDetail", traceText), this, null); } using (new WorkflowDispatchContext(true, true)) { this.workflowInstance.Start(); } } else { //Make sure we clean up this InstanceContext; DurableErrorHandler.CleanUpInstanceContextAtOperationCompletion(); //Inform InstanceLifeTimeManager to clean up record for InstanceId; if (this.instanceContextProvider.InstanceLifeTimeManager != null) { this.instanceContextProvider.InstanceLifeTimeManager.CleanUp(this.InstanceId); } throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new FaultException(new DurableDispatcherAddressingFault())); } } else { this.workflowInstance = this.workflowDefinition.WorkflowRuntime.GetWorkflow(InstanceId); if (DiagnosticUtility.ShouldTraceInformation) { string traceText = SR.GetString(SR.TraceCodeWorkflowDurableInstanceLoaded, InstanceId); TraceUtility.TraceEvent(TraceEventType.Information, TraceCode.WorkflowDurableInstanceLoaded, traceText, new StringTraceRecord("DurableInstanceDetail", traceText), this, null); } } } } return workflowInstance; } } } // 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
- TextBlock.cs
- objectquery_tresulttype.cs
- ImageListUtils.cs
- FixUp.cs
- RsaSecurityKey.cs
- ETagAttribute.cs
- DiscoveryOperationContextExtension.cs
- BitmapEffectGroup.cs
- _Rfc2616CacheValidators.cs
- AllMembershipCondition.cs
- ButtonColumn.cs
- TreeNodeCollection.cs
- ResourceReferenceKeyNotFoundException.cs
- MarkupCompilePass1.cs
- PrinterResolution.cs
- QueryBranchOp.cs
- ToolBarTray.cs
- AutomationPatternInfo.cs
- AsymmetricKeyExchangeFormatter.cs
- HttpRuntime.cs
- ButtonColumn.cs
- TimeIntervalCollection.cs
- ImageClickEventArgs.cs
- DesignerAutoFormatStyle.cs
- ChannelDispatcherCollection.cs
- ResourceReferenceExpressionConverter.cs
- FrameworkElementFactoryMarkupObject.cs
- TextTreeText.cs
- ProcessHost.cs
- DbConnectionInternal.cs
- ConsumerConnectionPoint.cs
- ConnectivityStatus.cs
- PackageProperties.cs
- CursorConverter.cs
- RuleProcessor.cs
- FollowerQueueCreator.cs
- SemanticResultValue.cs
- SourceItem.cs
- EventData.cs
- GenericWebPart.cs
- RewritingValidator.cs
- InfoCardHelper.cs
- SQLInt32.cs
- BitmapEffectDrawing.cs
- TypeInitializationException.cs
- ComContractElement.cs
- ALinqExpressionVisitor.cs
- NameGenerator.cs
- ResourceDictionaryCollection.cs
- _BaseOverlappedAsyncResult.cs
- CategoryGridEntry.cs
- ObjectQueryExecutionPlan.cs
- WhitespaceRuleReader.cs
- ButtonBaseAutomationPeer.cs
- MonikerHelper.cs
- ShapingWorkspace.cs
- CommonServiceBehaviorElement.cs
- CommandHelper.cs
- HttpModuleAction.cs
- UnsafeNativeMethods.cs
- XmlSchemaAnnotation.cs
- ObjectDataSourceStatusEventArgs.cs
- UdpChannelListener.cs
- WindowVisualStateTracker.cs
- BrushValueSerializer.cs
- ResourceType.cs
- XmlWrappingReader.cs
- IsolationInterop.cs
- MsmqHostedTransportManager.cs
- Binding.cs
- WindowsPrincipal.cs
- Section.cs
- ResourcePermissionBaseEntry.cs
- ImmutableObjectAttribute.cs
- DataGridViewCellStateChangedEventArgs.cs
- altserialization.cs
- WebServiceMethodData.cs
- SqlCacheDependency.cs
- BitmapMetadataEnumerator.cs
- ClientRequest.cs
- BuildProviderCollection.cs
- Deserializer.cs
- DBCSCodePageEncoding.cs
- HtmlForm.cs
- ToolStripItem.cs
- CommonObjectSecurity.cs
- DBSqlParserTable.cs
- DummyDataSource.cs
- FormParameter.cs
- ForceCopyBuildProvider.cs
- WSTrustDec2005.cs
- DataGridViewAdvancedBorderStyle.cs
- DataControlButton.cs
- messageonlyhwndwrapper.cs
- MobileControl.cs
- MemberDescriptor.cs
- TraceHandlerErrorFormatter.cs
- WhiteSpaceTrimStringConverter.cs
- StrongName.cs
- NumberFunctions.cs