Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / RunTime / Hosting / WorkflowRuntimeService.cs / 1305376 / WorkflowRuntimeService.cs
//Copyright (c) Microsoft Corporation. All rights reserved. using System; using System.Globalization; using System.Workflow.Runtime; namespace System.Workflow.Runtime.Hosting { public enum WorkflowRuntimeServiceState { Stopped, Starting, Started, Stopping } abstract public class WorkflowRuntimeService { private WorkflowRuntime _runtime; private WorkflowRuntimeServiceState state = WorkflowRuntimeServiceState.Stopped; protected WorkflowRuntime Runtime { get { return _runtime; } } internal void SetRuntime(WorkflowRuntime runtime) { if (runtime == null && _runtime != null) { _runtime.Started -= this.HandleStarted; _runtime.Stopped -= this.HandleStopped; } _runtime = runtime; if (runtime != null) { _runtime.Started += this.HandleStarted; _runtime.Stopped += this.HandleStopped; } } protected void RaiseServicesExceptionNotHandledEvent(Exception exception, Guid instanceId) { Runtime.RaiseServicesExceptionNotHandledEvent(exception, instanceId); } internal void RaiseExceptionNotHandledEvent(Exception exception, Guid instanceId) { Runtime.RaiseServicesExceptionNotHandledEvent(exception, instanceId); } protected WorkflowRuntimeServiceState State { get { return state; } } virtual internal protected void Start() { if (_runtime == null) throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, ExecutionStringManager.ServiceNotAddedToRuntime, this.GetType().Name)); if (state.Equals(WorkflowRuntimeServiceState.Started)) throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, ExecutionStringManager.ServiceAlreadyStarted, this.GetType().Name)); state = WorkflowRuntimeServiceState.Starting; } virtual internal protected void Stop() { if (_runtime == null) throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, ExecutionStringManager.ServiceNotAddedToRuntime, this.GetType().Name)); if (state.Equals(WorkflowRuntimeServiceState.Stopped)) throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, ExecutionStringManager.ServiceNotStarted, this.GetType().Name)); state = WorkflowRuntimeServiceState.Stopping; } virtual protected void OnStarted() {} virtual protected void OnStopped() {} private void HandleStarted(object source, WorkflowRuntimeEventArgs e) { state = WorkflowRuntimeServiceState.Started; this.OnStarted(); } private void HandleStopped(object source, WorkflowRuntimeEventArgs e) { state = WorkflowRuntimeServiceState.Stopped; this.OnStopped(); } } } // 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
- IdentifierService.cs
- AsymmetricKeyExchangeDeformatter.cs
- SolidColorBrush.cs
- ProtocolsSection.cs
- HMAC.cs
- CommentEmitter.cs
- RegexGroupCollection.cs
- NegotiationTokenAuthenticator.cs
- MethodRental.cs
- ButtonBase.cs
- XmlSchemaValidator.cs
- MessagePropertyVariants.cs
- IResourceProvider.cs
- StoragePropertyMapping.cs
- CheckedListBox.cs
- QilInvoke.cs
- MouseButtonEventArgs.cs
- TextCharacters.cs
- MsmqIntegrationBinding.cs
- DataFormats.cs
- UnionCodeGroup.cs
- HttpProfileGroupBase.cs
- FileRecordSequence.cs
- RegexFCD.cs
- SectionXmlInfo.cs
- LogicalTreeHelper.cs
- DocumentViewerConstants.cs
- FrameworkElementFactory.cs
- HtmlCommandAdapter.cs
- XmlDataDocument.cs
- FontStyles.cs
- DependencyPropertyKey.cs
- DocumentSequence.cs
- OverflowException.cs
- TagPrefixAttribute.cs
- ThrowHelper.cs
- EnumMemberAttribute.cs
- RemotingSurrogateSelector.cs
- CachedPathData.cs
- ScriptResourceAttribute.cs
- QilTypeChecker.cs
- TextBoxBase.cs
- XmlSignatureProperties.cs
- UIElementAutomationPeer.cs
- Decorator.cs
- HostingEnvironmentWrapper.cs
- DataListItem.cs
- HttpHandlerAction.cs
- Event.cs
- XmlSchemaImport.cs
- _UncName.cs
- DataGridViewDataErrorEventArgs.cs
- SelectionRange.cs
- SID.cs
- ValidationErrorEventArgs.cs
- WebPartCatalogCloseVerb.cs
- AggregateException.cs
- SqlDeflator.cs
- ProtocolState.cs
- SecurityChannelListener.cs
- WebAdminConfigurationHelper.cs
- RecognizedPhrase.cs
- VirtualizingStackPanel.cs
- PropertyRef.cs
- WriterOutput.cs
- CompletionCallbackWrapper.cs
- SafeBitVector32.cs
- SemanticResultValue.cs
- VectorCollectionConverter.cs
- SplashScreen.cs
- Rotation3D.cs
- TreeChangeInfo.cs
- ReadOnlyHierarchicalDataSource.cs
- DataObjectAttribute.cs
- Funcletizer.cs
- ExtensionCollection.cs
- FocusChangedEventArgs.cs
- GeneralTransformGroup.cs
- LineServicesRun.cs
- ToolStripPanelRenderEventArgs.cs
- followingquery.cs
- ImportedNamespaceContextItem.cs
- keycontainerpermission.cs
- StickyNoteAnnotations.cs
- CompositeFontInfo.cs
- Trigger.cs
- EditorZone.cs
- VirtualizingStackPanel.cs
- PrincipalPermission.cs
- CurrentChangedEventManager.cs
- ListControl.cs
- DataViewManagerListItemTypeDescriptor.cs
- HostingEnvironmentException.cs
- ToolStripSystemRenderer.cs
- DBSqlParserTableCollection.cs
- WindowsAuthenticationModule.cs
- PropertyEntry.cs
- Dump.cs
- WorkflowApplicationTerminatedException.cs
- UserInitiatedRoutedEventPermission.cs