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
- ClientData.cs
- UserControl.cs
- PerformanceCounterPermissionEntry.cs
- VisualTransition.cs
- COM2PictureConverter.cs
- DataSourceGeneratorException.cs
- X509Certificate2.cs
- AccessDataSource.cs
- DataGridViewCellStyleConverter.cs
- ComboBox.cs
- sqlnorm.cs
- ToolboxDataAttribute.cs
- XmlSchemaSimpleContentRestriction.cs
- BitHelper.cs
- ReadOnlyMetadataCollection.cs
- StyleXamlParser.cs
- XamlPathDataSerializer.cs
- SiblingIterators.cs
- BatchWriter.cs
- WindowsGraphicsCacheManager.cs
- ListManagerBindingsCollection.cs
- Privilege.cs
- CollectionBase.cs
- CodeTypeParameter.cs
- ZoomPercentageConverter.cs
- WeakReference.cs
- ContractHandle.cs
- Int64.cs
- UpDownEvent.cs
- TransformerConfigurationWizardBase.cs
- KerberosSecurityTokenProvider.cs
- Column.cs
- Executor.cs
- AdapterUtil.cs
- WebPartTransformerCollection.cs
- BitmapImage.cs
- Itemizer.cs
- BaseParaClient.cs
- ReadOnlyCollection.cs
- MediaContext.cs
- GridViewEditEventArgs.cs
- Stylesheet.cs
- WebDescriptionAttribute.cs
- CompilerWrapper.cs
- VariantWrapper.cs
- SmtpSection.cs
- Update.cs
- ApplyTemplatesAction.cs
- ParameterBuilder.cs
- ListItemConverter.cs
- Rect3DValueSerializer.cs
- CompilationUtil.cs
- StickyNoteContentControl.cs
- DocumentGrid.cs
- EventProviderWriter.cs
- CompilerScopeManager.cs
- OperatorExpressions.cs
- TableLayoutPanelCellPosition.cs
- EntityDataSourceState.cs
- diagnosticsswitches.cs
- OracleEncoding.cs
- ResXBuildProvider.cs
- XhtmlBasicTextBoxAdapter.cs
- EntityDataSourceState.cs
- CacheEntry.cs
- recordstatefactory.cs
- MaskInputRejectedEventArgs.cs
- ConstrainedDataObject.cs
- MenuBase.cs
- SymbolPair.cs
- XsdCachingReader.cs
- ConfigXmlWhitespace.cs
- CaseCqlBlock.cs
- HyperLinkColumn.cs
- ToolStripDropDownMenu.cs
- ListViewItem.cs
- CodeMethodReturnStatement.cs
- BaseServiceProvider.cs
- UnionExpr.cs
- SessionEndingEventArgs.cs
- OutputCacheSettings.cs
- SqlDataSourceFilteringEventArgs.cs
- MonitorWrapper.cs
- _ListenerAsyncResult.cs
- DataGridBoolColumn.cs
- RotateTransform3D.cs
- PointAnimationBase.cs
- WorkflowViewStateService.cs
- ConfigPathUtility.cs
- WebPartManagerInternals.cs
- OSEnvironmentHelper.cs
- CrossSiteScriptingValidation.cs
- ControlLocalizer.cs
- StringResourceManager.cs
- DispatcherObject.cs
- Ipv6Element.cs
- StringUtil.cs
- HttpWebRequestElement.cs
- Tuple.cs
- UnmanagedMarshal.cs