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
- WindowsStatic.cs
- PasswordDeriveBytes.cs
- RegexFCD.cs
- DataServiceRequestOfT.cs
- FormViewPagerRow.cs
- PeerContact.cs
- RegisteredHiddenField.cs
- CompensableActivity.cs
- SqlExpander.cs
- SqlComparer.cs
- ISAPIWorkerRequest.cs
- HttpDebugHandler.cs
- DataObjectPastingEventArgs.cs
- ProfileService.cs
- nulltextcontainer.cs
- TemplatedAdorner.cs
- UserControl.cs
- DataSet.cs
- MatrixAnimationUsingPath.cs
- CalendarSelectionChangedEventArgs.cs
- IndexedEnumerable.cs
- Win32SafeHandles.cs
- UserPreferenceChangingEventArgs.cs
- StringCollectionEditor.cs
- Mappings.cs
- CodeMemberField.cs
- FlatButtonAppearance.cs
- ListDictionaryInternal.cs
- TTSEvent.cs
- CodeTypeDeclarationCollection.cs
- AnonymousIdentificationSection.cs
- ReaderWriterLockSlim.cs
- EventWaitHandle.cs
- StringReader.cs
- EncoderBestFitFallback.cs
- BaseComponentEditor.cs
- URLBuilder.cs
- EntityDataSourceSelectedEventArgs.cs
- DomainUpDown.cs
- CardSpaceShim.cs
- RuleValidation.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- NavigateUrlConverter.cs
- StateMachineDesignerPaint.cs
- AdapterUtil.cs
- EmptyEnumerator.cs
- TCPClient.cs
- itemelement.cs
- ItemContainerGenerator.cs
- CodeGotoStatement.cs
- LayoutEngine.cs
- EnumerationRangeValidationUtil.cs
- VirtualPath.cs
- GeneralTransform3D.cs
- LinkDescriptor.cs
- RectAnimationClockResource.cs
- MarshalDirectiveException.cs
- CqlLexer.cs
- GlyphTypeface.cs
- CellConstantDomain.cs
- WebEventTraceProvider.cs
- EntityRecordInfo.cs
- DbProviderFactory.cs
- ImportCatalogPart.cs
- XmlKeywords.cs
- TimeZone.cs
- WebBrowserNavigatedEventHandler.cs
- Assert.cs
- InstallerTypeAttribute.cs
- ApplicationDirectoryMembershipCondition.cs
- FrugalList.cs
- XmlCustomFormatter.cs
- ControlPropertyNameConverter.cs
- FileDialogCustomPlacesCollection.cs
- TemplateFactory.cs
- HttpHandlerAction.cs
- Vars.cs
- Int64AnimationUsingKeyFrames.cs
- StreamUpgradeBindingElement.cs
- ByteStreamGeometryContext.cs
- DocumentOrderQuery.cs
- DoubleAnimation.cs
- IntranetCredentialPolicy.cs
- RemoveStoryboard.cs
- WeakEventTable.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- SmiMetaData.cs
- SQLString.cs
- GreaterThan.cs
- WaitHandle.cs
- SqlProfileProvider.cs
- ReadOnlyPropertyMetadata.cs
- XmlNamespaceManager.cs
- xamlnodes.cs
- DbConnectionPoolIdentity.cs
- LocatorPartList.cs
- IsolatedStorageFileStream.cs
- ReadOnlyCollectionBase.cs
- SqlNotificationRequest.cs
- WebBrowsableAttribute.cs