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
- FontStyleConverter.cs
- ExecutionContext.cs
- ColumnMapProcessor.cs
- ServiceReference.cs
- XmlNode.cs
- DependencyPropertyKey.cs
- InkSerializer.cs
- DataRowCollection.cs
- UndoManager.cs
- ResolvedKeyFrameEntry.cs
- UnitySerializationHolder.cs
- SchemaName.cs
- CompilerTypeWithParams.cs
- OleDbDataReader.cs
- TypeConverterHelper.cs
- Model3DGroup.cs
- ConfigXmlDocument.cs
- _PooledStream.cs
- BindingGroup.cs
- DropDownHolder.cs
- MediaTimeline.cs
- RectangleHotSpot.cs
- ElementFactory.cs
- ArrayConverter.cs
- HashCodeCombiner.cs
- WorkflowView.cs
- ReturnValue.cs
- UInt32.cs
- RectConverter.cs
- AsymmetricAlgorithm.cs
- DataControlCommands.cs
- WebUtil.cs
- CrossAppDomainChannel.cs
- TaskScheduler.cs
- InstanceKey.cs
- AdapterUtil.cs
- JsonSerializer.cs
- contentDescriptor.cs
- SrgsSemanticInterpretationTag.cs
- JapaneseCalendar.cs
- DataServiceHostFactory.cs
- CodeEntryPointMethod.cs
- VectorConverter.cs
- BehaviorEditorPart.cs
- RegexFCD.cs
- TreeNodeCollection.cs
- ChtmlFormAdapter.cs
- CopyEncoder.cs
- XmlComplianceUtil.cs
- WebHttpBindingCollectionElement.cs
- ContentDefinition.cs
- EnumBuilder.cs
- BasicBrowserDialog.cs
- TextChangedEventArgs.cs
- DataObjectMethodAttribute.cs
- WinInetCache.cs
- SqlExpressionNullability.cs
- JulianCalendar.cs
- ExtensibleClassFactory.cs
- PrintDialogException.cs
- CompositionTarget.cs
- Int16Storage.cs
- IndexedString.cs
- XmlValidatingReaderImpl.cs
- Base64Decoder.cs
- RuntimeHelpers.cs
- DataContractFormatAttribute.cs
- DateTimeConstantAttribute.cs
- ClientRuntimeConfig.cs
- WmpBitmapDecoder.cs
- XmlElementCollection.cs
- TripleDESCryptoServiceProvider.cs
- coordinator.cs
- CharacterBufferReference.cs
- Int32CollectionConverter.cs
- InputElement.cs
- MobileListItem.cs
- NotifyIcon.cs
- PagedControl.cs
- GridEntry.cs
- LinkLabel.cs
- HttpCookie.cs
- AbstractExpressions.cs
- WebConfigurationManager.cs
- TextStore.cs
- RangeValuePattern.cs
- FillBehavior.cs
- CallbackTimeoutsBehavior.cs
- TaiwanCalendar.cs
- ListViewItem.cs
- BackgroundFormatInfo.cs
- ConfigXmlAttribute.cs
- SmtpReplyReaderFactory.cs
- ManagementBaseObject.cs
- WSSecurityTokenSerializer.cs
- COM2IProvidePropertyBuilderHandler.cs
- DbDataRecord.cs
- LogSwitch.cs
- ContextMenuAutomationPeer.cs
- DropShadowBitmapEffect.cs