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
- XamlFigureLengthSerializer.cs
- IOThreadScheduler.cs
- precedingquery.cs
- PerformanceCounterPermissionAttribute.cs
- SessionPageStateSection.cs
- BlurBitmapEffect.cs
- AttachedAnnotation.cs
- ConstrainedDataObject.cs
- MobileResource.cs
- TimeoutException.cs
- WebPartZoneCollection.cs
- CommandEventArgs.cs
- BoundPropertyEntry.cs
- HotCommands.cs
- SiteMapNode.cs
- MobileControl.cs
- RegexWorker.cs
- FontStretch.cs
- OdbcConnectionHandle.cs
- CodeTypeMemberCollection.cs
- ConfigXmlComment.cs
- PolygonHotSpot.cs
- CodePageUtils.cs
- Binding.cs
- AssemblyBuilderData.cs
- GenericPrincipal.cs
- hebrewshape.cs
- OleDbConnection.cs
- CodeMemberField.cs
- ErrorFormatterPage.cs
- SmiContext.cs
- ManagementEventWatcher.cs
- WmlCommandAdapter.cs
- HwndProxyElementProvider.cs
- WorkflowServiceAttributes.cs
- HashMembershipCondition.cs
- DefaultMemberAttribute.cs
- IsolatedStorage.cs
- util.cs
- DesigntimeLicenseContextSerializer.cs
- StreamUpdate.cs
- CriticalHandle.cs
- IteratorAsyncResult.cs
- WebScriptMetadataMessageEncoderFactory.cs
- BindableAttribute.cs
- SqlComparer.cs
- RegexMatch.cs
- EditorPartCollection.cs
- WindowsClientElement.cs
- DataGridViewRowCollection.cs
- Transform.cs
- AddressHeaderCollection.cs
- ObjectRef.cs
- DataServiceException.cs
- ManagementExtension.cs
- TextEditorMouse.cs
- DefaultObjectMappingItemCollection.cs
- CriticalHandle.cs
- ToolStripScrollButton.cs
- Win32.cs
- EntryIndex.cs
- DoubleIndependentAnimationStorage.cs
- RSAPKCS1KeyExchangeFormatter.cs
- WebPartConnectionsEventArgs.cs
- SubpageParagraph.cs
- XdrBuilder.cs
- MemberHolder.cs
- NameTable.cs
- streamingZipPartStream.cs
- ServiceParser.cs
- SequenceQuery.cs
- CodeDOMProvider.cs
- LinqDataSource.cs
- CodeIdentifier.cs
- Literal.cs
- EdmType.cs
- Attributes.cs
- WebPartEditorApplyVerb.cs
- FixedTextBuilder.cs
- RawAppCommandInputReport.cs
- PointAnimationClockResource.cs
- CmsUtils.cs
- SymbolMethod.cs
- SynchronizedInputHelper.cs
- AutomationFocusChangedEventArgs.cs
- Parser.cs
- ToolStripItemClickedEventArgs.cs
- FullTextLine.cs
- ListBox.cs
- EntityCollectionChangedParams.cs
- WebUtil.cs
- WebPartConnectionsConnectVerb.cs
- TypedCompletedAsyncResult.cs
- ProcessModule.cs
- CurrencyManager.cs
- StickyNoteHelper.cs
- X500Name.cs
- documentsequencetextcontainer.cs
- SqlOuterApplyReducer.cs
- SQLInt32.cs