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
- Accessible.cs
- AssociationEndMember.cs
- ArraySegment.cs
- GridViewDeleteEventArgs.cs
- UdpDuplexChannel.cs
- DocumentPageViewAutomationPeer.cs
- DbConnectionPoolCounters.cs
- ComponentConverter.cs
- InstanceDescriptor.cs
- CustomAssemblyResolver.cs
- CharUnicodeInfo.cs
- CheckPair.cs
- XPathSingletonIterator.cs
- ComplusEndpointConfigContainer.cs
- FixedSOMPageElement.cs
- NamespaceList.cs
- TableCellAutomationPeer.cs
- PeerOutputChannel.cs
- TextEffect.cs
- DataGridViewButtonColumn.cs
- _ProxyChain.cs
- RuleInfoComparer.cs
- TcpClientChannel.cs
- SEHException.cs
- ServiceElement.cs
- ApplicationContext.cs
- ApplicationFileParser.cs
- MailWebEventProvider.cs
- WebPartDisplayModeEventArgs.cs
- recordstatescratchpad.cs
- SimpleHandlerFactory.cs
- BuildManagerHost.cs
- XmlHierarchicalDataSourceView.cs
- DependencyObjectProvider.cs
- Listbox.cs
- bindurihelper.cs
- SolidBrush.cs
- TextViewBase.cs
- ResXFileRef.cs
- GradientStopCollection.cs
- ButtonPopupAdapter.cs
- BrowserInteropHelper.cs
- GridViewColumnHeader.cs
- ScalarType.cs
- DocobjHost.cs
- ResourceCategoryAttribute.cs
- Compensation.cs
- DbProviderFactories.cs
- HttpCacheVary.cs
- MetadataSection.cs
- CookieParameter.cs
- CharacterMetrics.cs
- EmptyCollection.cs
- PrimitiveList.cs
- ScrollableControl.cs
- controlskin.cs
- LambdaCompiler.Logical.cs
- BamlStream.cs
- MenuStrip.cs
- PageThemeParser.cs
- AttributeCollection.cs
- StorageEntitySetMapping.cs
- SqlDataSourceConfigureSortForm.cs
- localization.cs
- SplineKeyFrames.cs
- TreeNodeCollectionEditor.cs
- ListInitExpression.cs
- NativeCppClassAttribute.cs
- TypeNameHelper.cs
- AuthorizationSection.cs
- EdmSchemaAttribute.cs
- ListView.cs
- MaskDescriptors.cs
- X509Utils.cs
- Journaling.cs
- CryptoHelper.cs
- Span.cs
- MonthChangedEventArgs.cs
- WebDescriptionAttribute.cs
- UndirectedGraph.cs
- FixedDocumentSequencePaginator.cs
- ImageCollectionCodeDomSerializer.cs
- TwoPhaseCommit.cs
- XslAstAnalyzer.cs
- DataControlButton.cs
- AuthorizationRuleCollection.cs
- ExpressionCopier.cs
- StringCollection.cs
- RootBrowserWindowAutomationPeer.cs
- TextEmbeddedObject.cs
- SystemNetHelpers.cs
- SqlMethodCallConverter.cs
- Image.cs
- Bits.cs
- TypeTypeConverter.cs
- PickBranch.cs
- querybuilder.cs
- DataGridPageChangedEventArgs.cs
- SaveFileDialog.cs
- followingsibling.cs