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
- EventLog.cs
- WebMessageEncodingBindingElement.cs
- NativeMethods.cs
- wgx_render.cs
- FtpWebResponse.cs
- ButtonBase.cs
- SoapHttpTransportImporter.cs
- ObjectDataSourceSelectingEventArgs.cs
- SectionXmlInfo.cs
- ExpressionUtilities.cs
- Base64Encoding.cs
- ImageIndexConverter.cs
- ContractDescription.cs
- FixedPageProcessor.cs
- MSAAEventDispatcher.cs
- PositiveTimeSpanValidator.cs
- DataFormats.cs
- TransactedBatchingBehavior.cs
- PrintController.cs
- MessageContractMemberAttribute.cs
- TypeToStringValueConverter.cs
- FormatterConverter.cs
- SafeHandle.cs
- X509WindowsSecurityToken.cs
- EnvelopedSignatureTransform.cs
- BufferedOutputAsyncStream.cs
- IssuedTokenClientBehaviorsElementCollection.cs
- GregorianCalendar.cs
- RadioButtonStandardAdapter.cs
- configsystem.cs
- ListViewInsertionMark.cs
- ClientRolePrincipal.cs
- ResolveDuplexAsyncResult.cs
- CommonDialog.cs
- DataKey.cs
- HttpRequestTraceRecord.cs
- ColorConvertedBitmapExtension.cs
- Aes.cs
- SystemIcmpV6Statistics.cs
- Transform3D.cs
- TextBoxView.cs
- PseudoWebRequest.cs
- sqlnorm.cs
- XmlChildEnumerator.cs
- SoapParser.cs
- SqlMethodCallConverter.cs
- SubstitutionResponseElement.cs
- UpdatePanelTriggerCollection.cs
- TextFormatterImp.cs
- SafeEventLogReadHandle.cs
- ProgressBar.cs
- ExtensibleClassFactory.cs
- Html32TextWriter.cs
- InputLanguageManager.cs
- RequestStatusBarUpdateEventArgs.cs
- ConfigurationStrings.cs
- PermissionAttributes.cs
- PassportAuthentication.cs
- WebPartEditorCancelVerb.cs
- EntityTypeEmitter.cs
- StandardCommands.cs
- TemplateColumn.cs
- SamlAttribute.cs
- AppLevelCompilationSectionCache.cs
- AttributeUsageAttribute.cs
- DatagridviewDisplayedBandsData.cs
- MissingMemberException.cs
- UIElement3D.cs
- DataTableMapping.cs
- SqlPersistenceWorkflowInstanceDescription.cs
- PageCatalogPart.cs
- GeometryGroup.cs
- FileDialogCustomPlacesCollection.cs
- CachedCompositeFamily.cs
- DocumentsTrace.cs
- Attributes.cs
- PropertyGridDesigner.cs
- ErrorTableItemStyle.cs
- InputEventArgs.cs
- Rule.cs
- AssemblyHash.cs
- URL.cs
- XmlILConstructAnalyzer.cs
- GAC.cs
- PipelineDeploymentState.cs
- TcpProcessProtocolHandler.cs
- DynamicRenderer.cs
- AspNetPartialTrustHelpers.cs
- Rfc2898DeriveBytes.cs
- GenericIdentity.cs
- WizardForm.cs
- GeneralTransform3DCollection.cs
- ColumnReorderedEventArgs.cs
- LineBreak.cs
- SqlConnectionStringBuilder.cs
- SqlConnectionPoolProviderInfo.cs
- ResourceProviderFactory.cs
- TreeNodeBindingCollection.cs
- BlockExpression.cs
- ACL.cs