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
- XmlDocumentViewSchema.cs
- AsymmetricSignatureDeformatter.cs
- FrameworkContextData.cs
- DispatcherObject.cs
- GeneralTransformGroup.cs
- XmlSignificantWhitespace.cs
- _AuthenticationState.cs
- __FastResourceComparer.cs
- XmlHierarchyData.cs
- SystemPens.cs
- TrackingServices.cs
- hresults.cs
- DataViewSetting.cs
- UnsafeNativeMethods.cs
- EpmSyndicationContentSerializer.cs
- PermissionRequestEvidence.cs
- InvalidEnumArgumentException.cs
- RsaSecurityToken.cs
- Clause.cs
- ViewStateException.cs
- ProxyWebPartConnectionCollection.cs
- FunctionOverloadResolver.cs
- TemplateNodeContextMenu.cs
- InstanceNotReadyException.cs
- HttpCachePolicy.cs
- HtmlFormParameterReader.cs
- DynamicPropertyHolder.cs
- SrgsNameValueTag.cs
- sitestring.cs
- SecurityRuntime.cs
- BinaryWriter.cs
- UrlMapping.cs
- BinaryObjectReader.cs
- SiteMap.cs
- TextTreeInsertElementUndoUnit.cs
- ColumnReorderedEventArgs.cs
- TypeDescriptionProvider.cs
- BasicHttpSecurity.cs
- _NegotiateClient.cs
- SessionPageStateSection.cs
- RoutedEventArgs.cs
- OdbcCommandBuilder.cs
- ConstructorExpr.cs
- WebColorConverter.cs
- DefaultPropertyAttribute.cs
- CreateUserErrorEventArgs.cs
- Errors.cs
- DataKeyArray.cs
- XmlNamespaceMappingCollection.cs
- UserPreferenceChangingEventArgs.cs
- ObjRef.cs
- KnownTypes.cs
- TreeView.cs
- HostVisual.cs
- ReadWriteSpinLock.cs
- DataShape.cs
- ObjectDataSourceEventArgs.cs
- PopOutPanel.cs
- DefaultValueTypeConverter.cs
- PathFigureCollection.cs
- ProtocolProfile.cs
- Identifier.cs
- AesCryptoServiceProvider.cs
- SuppressMergeCheckAttribute.cs
- BatchServiceHost.cs
- HostDesigntimeLicenseContext.cs
- EUCJPEncoding.cs
- IgnoreFlushAndCloseStream.cs
- IntellisenseTextBox.designer.cs
- SchemaImporter.cs
- StylusPlugInCollection.cs
- ProxyAttribute.cs
- VSWCFServiceContractGenerator.cs
- OrderingQueryOperator.cs
- BaseParaClient.cs
- InfoCardBaseException.cs
- XmlJsonReader.cs
- SlotInfo.cs
- InternalBufferOverflowException.cs
- returneventsaver.cs
- DbParameterCollection.cs
- CloseSequence.cs
- ExceptionUtil.cs
- ManualResetEventSlim.cs
- ComponentRenameEvent.cs
- ManagementInstaller.cs
- ControlPropertyNameConverter.cs
- IntSecurity.cs
- CodeBlockBuilder.cs
- DataGridHelper.cs
- ResourceDisplayNameAttribute.cs
- RadioButtonAutomationPeer.cs
- TransactionState.cs
- MemoryFailPoint.cs
- precedingquery.cs
- DataObjectFieldAttribute.cs
- AudioDeviceOut.cs
- TransactedReceiveData.cs
- TrailingSpaceComparer.cs
- SafeFileMappingHandle.cs