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
- WarningException.cs
- RadioButtonFlatAdapter.cs
- XPathNodeInfoAtom.cs
- UnsafeNativeMethods.cs
- __ComObject.cs
- DoubleIndependentAnimationStorage.cs
- CultureInfo.cs
- WindowsStatusBar.cs
- InteropBitmapSource.cs
- Cursor.cs
- TimeSpanStorage.cs
- AxParameterData.cs
- Gdiplus.cs
- CodeRegionDirective.cs
- FlowLayoutPanelDesigner.cs
- InternalBufferOverflowException.cs
- ObjectQuery_EntitySqlExtensions.cs
- TableLayoutPanelCellPosition.cs
- OleDbRowUpdatedEvent.cs
- BinaryEditor.cs
- FunctionQuery.cs
- LoginName.cs
- WebPartZone.cs
- SystemKeyConverter.cs
- ConstantSlot.cs
- SortQuery.cs
- SettingsSavedEventArgs.cs
- PrintController.cs
- AccessControlList.cs
- AnonymousIdentificationSection.cs
- Timer.cs
- SubMenuStyle.cs
- PerformanceCounterCategory.cs
- BitmapDownload.cs
- SqlDeflator.cs
- ArrayElementGridEntry.cs
- ConnectionPointCookie.cs
- PropertyStore.cs
- Geometry.cs
- Timer.cs
- Error.cs
- HttpClientCertificate.cs
- ProjectionCamera.cs
- ManifestBasedResourceGroveler.cs
- WeakReferenceList.cs
- InkCanvasSelection.cs
- SelectorAutomationPeer.cs
- ValidatorCompatibilityHelper.cs
- DocumentXPathNavigator.cs
- ConditionCollection.cs
- JsonReaderDelegator.cs
- NetworkAddressChange.cs
- MsmqOutputMessage.cs
- XmlElementAttribute.cs
- LocalIdKeyIdentifierClause.cs
- DbMetaDataFactory.cs
- EntitySetBaseCollection.cs
- TypeToken.cs
- SqlDataSourceCommandEventArgs.cs
- RightsController.cs
- MouseDevice.cs
- _SpnDictionary.cs
- DbMetaDataColumnNames.cs
- TextParentUndoUnit.cs
- PropertyItem.cs
- LoginName.cs
- TypographyProperties.cs
- TypePresenter.xaml.cs
- BaseComponentEditor.cs
- CapabilitiesRule.cs
- DefaultPropertyAttribute.cs
- ProxySimple.cs
- PaginationProgressEventArgs.cs
- SQLDecimal.cs
- SortedDictionary.cs
- DataSourceSelectArguments.cs
- HttpRawResponse.cs
- FacetDescription.cs
- TemplateField.cs
- EnvironmentPermission.cs
- EventDescriptor.cs
- PropertyDescriptorComparer.cs
- RequestCachingSection.cs
- VerificationException.cs
- ProfileBuildProvider.cs
- IISMapPath.cs
- WebPartEditorApplyVerb.cs
- ObjectConverter.cs
- CheckBox.cs
- FormsAuthenticationConfiguration.cs
- Part.cs
- ScrollData.cs
- StylusCollection.cs
- DataColumnMappingCollection.cs
- AppendHelper.cs
- SpecialNameAttribute.cs
- OleDbDataReader.cs
- ClientConfigPaths.cs
- EmptyCollection.cs
- EmptyReadOnlyDictionaryInternal.cs