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
- activationcontext.cs
- SynchronizedInputProviderWrapper.cs
- BamlLocalizationDictionary.cs
- DateTimeStorage.cs
- ProviderConnectionPoint.cs
- Assert.cs
- TreeNodeStyle.cs
- AccessKeyManager.cs
- LiteralControl.cs
- ComponentManagerBroker.cs
- ViewStateException.cs
- CodeConditionStatement.cs
- TextEffect.cs
- PeerNameRecord.cs
- GridViewColumn.cs
- TailPinnedEventArgs.cs
- Point3DKeyFrameCollection.cs
- BindableAttribute.cs
- ValueSerializer.cs
- BeginStoryboard.cs
- PrtCap_Reader.cs
- SMSvcHost.cs
- CustomTrackingRecord.cs
- ParameterElementCollection.cs
- TrackingSection.cs
- DES.cs
- WebBrowserBase.cs
- HttpCapabilitiesBase.cs
- RotateTransform.cs
- Monitor.cs
- TraceProvider.cs
- HierarchicalDataBoundControlAdapter.cs
- BaseValidator.cs
- XmlILStorageConverter.cs
- PersonalizationEntry.cs
- DesignBindingConverter.cs
- ApplicationInfo.cs
- Logging.cs
- WebPartTransformerCollection.cs
- TypeNameParser.cs
- WebBaseEventKeyComparer.cs
- MetadataFile.cs
- ColorPalette.cs
- WindowsClaimSet.cs
- TrackingStringDictionary.cs
- FontWeights.cs
- SQLSingleStorage.cs
- UnsafeNativeMethods.cs
- DictionaryManager.cs
- PagerSettings.cs
- mediapermission.cs
- BrowsableAttribute.cs
- CrossContextChannel.cs
- InnerItemCollectionView.cs
- XmlILStorageConverter.cs
- MouseDevice.cs
- DataRowView.cs
- FlowLayout.cs
- DataGridColumnFloatingHeader.cs
- DataGridViewImageCell.cs
- SqlCacheDependencyDatabase.cs
- MiniLockedBorderGlyph.cs
- ProviderMetadataCachedInformation.cs
- TextWriterEngine.cs
- MessageQueueAccessControlEntry.cs
- DataObject.cs
- sqlpipe.cs
- HandleCollector.cs
- ScriptReference.cs
- IndentTextWriter.cs
- DebugView.cs
- RuntimeHandles.cs
- Preprocessor.cs
- DateTimeValueSerializerContext.cs
- BinaryUtilClasses.cs
- TransportContext.cs
- DbMetaDataFactory.cs
- StylusLogic.cs
- EventMetadata.cs
- XmlBinaryReader.cs
- ExpressionBuilder.cs
- PageThemeCodeDomTreeGenerator.cs
- Stylesheet.cs
- EUCJPEncoding.cs
- HwndAppCommandInputProvider.cs
- ResXDataNode.cs
- RenamedEventArgs.cs
- BitmapEffectRenderDataResource.cs
- altserialization.cs
- ObjectQueryProvider.cs
- KeyValueSerializer.cs
- CatalogUtil.cs
- WebEventTraceProvider.cs
- RegisterInfo.cs
- MeasureItemEvent.cs
- ReferencedCollectionType.cs
- DataGridColumn.cs
- CornerRadiusConverter.cs
- TextEditorCopyPaste.cs
- DependencyObjectType.cs