Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx35 / System.WorkflowServices / System / ServiceModel / Description / WorkflowRuntimeBehavior.cs / 1305376 / WorkflowRuntimeBehavior.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Description { using System.Globalization; using System.ServiceModel.Administration; using System.ServiceModel.Dispatcher; using System.Workflow.Runtime; using System.Workflow.Runtime.Configuration; using System.Workflow.Runtime.Hosting; public class WorkflowRuntimeBehavior : IServiceBehavior, IWmiInstanceProvider { internal static readonly TimeSpan DefaultCachedInstanceExpiration = TimeSpan.Parse(DefaultCachedInstanceExpirationString, CultureInfo.InvariantCulture); //default of 10 minutes chosen to be in-parity with SM inactivity timeout for session. internal const string DefaultCachedInstanceExpirationString = "00:10:00"; internal const string defaultName = "WorkflowRuntime"; internal const bool DefaultValidateOnCreate = true; static WorkflowRuntimeSection defaultWorkflowRuntimeSection; TimeSpan cachedInstanceExpiration; bool validateOnCreate; WorkflowRuntime workflowRuntime = null; public WorkflowRuntimeBehavior() : this(null, DefaultCachedInstanceExpiration, DefaultValidateOnCreate) { // empty } internal WorkflowRuntimeBehavior(WorkflowRuntime workflowRuntime, TimeSpan cachedInstanceExpiration, bool validateOnCreate) { this.workflowRuntime = workflowRuntime; this.cachedInstanceExpiration = cachedInstanceExpiration; this.validateOnCreate = validateOnCreate; } public TimeSpan CachedInstanceExpiration { get { return this.cachedInstanceExpiration; } set { if (value < TimeSpan.Zero) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value")); } this.cachedInstanceExpiration = value; } } public WorkflowRuntime WorkflowRuntime { get { if (this.workflowRuntime == null) { this.workflowRuntime = new WorkflowRuntime(WorkflowRuntimeBehavior.DefaultWorkflowRuntimeSection); } return this.workflowRuntime; } } internal bool ValidateOnCreate { get { return this.validateOnCreate; } } static WorkflowRuntimeSection DefaultWorkflowRuntimeSection { get { if (defaultWorkflowRuntimeSection == null) { WorkflowRuntimeSection tempSection = new WorkflowRuntimeSection(); tempSection.ValidateOnCreate = false; tempSection.EnablePerformanceCounters = true; tempSection.Name = defaultName; defaultWorkflowRuntimeSection = tempSection; } return defaultWorkflowRuntimeSection; } } public void AddBindingParameters(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase, System.Collections.ObjectModel.Collectionendpoints, System.ServiceModel.Channels.BindingParameterCollection bindingParameters) { } public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase) { if (serviceHostBase == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("serviceHostBase"); } if (serviceHostBase.Extensions == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("serviceHostBase.Extensions"); } WorkflowInstanceLifetimeManagerExtension cachedInstanceExpirationExtension = new WorkflowInstanceLifetimeManagerExtension( this.WorkflowRuntime, this.CachedInstanceExpiration, this.WorkflowRuntime.GetService () != null); serviceHostBase.Extensions.Add(cachedInstanceExpirationExtension); } void IWmiInstanceProvider.FillInstance(IWmiInstance wmiInstance) { wmiInstance.SetProperty("CachedInstanceExpiration", this.CachedInstanceExpiration.ToString()); } string IWmiInstanceProvider.GetInstanceType() { return "WorkflowRuntimeBehavior"; } public void Validate(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase) { ValidateWorkflowRuntime(this.WorkflowRuntime); } void ValidateWorkflowRuntime(WorkflowRuntime workflowRuntime) { if (workflowRuntime.IsStarted) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR2.GetString(SR2.WorkflowRuntimeStartedBeforeHostOpen))); } WorkflowSchedulerService workflowSchedulerService = workflowRuntime.GetService (); if (!(workflowSchedulerService is SynchronizationContextWorkflowSchedulerService)) { if (workflowSchedulerService != null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR2.GetString(SR2.WrongSchedulerServiceRegistered))); } workflowRuntime.AddService(new SynchronizationContextWorkflowSchedulerService()); } } } } // 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
- Matrix3DStack.cs
- SqlPersonalizationProvider.cs
- QilStrConcatenator.cs
- SimpleNameService.cs
- TextSelectionHelper.cs
- ContextConfiguration.cs
- PropertyToken.cs
- NameValueFileSectionHandler.cs
- KnownTypes.cs
- MultilineStringConverter.cs
- CompilerErrorCollection.cs
- TextEffect.cs
- RoleManagerModule.cs
- glyphs.cs
- DataGridToolTip.cs
- FixedElement.cs
- ProtocolsConfigurationHandler.cs
- SafeHandles.cs
- SqlException.cs
- ObfuscationAttribute.cs
- DataList.cs
- PartitionerStatic.cs
- TableLayoutRowStyleCollection.cs
- CodeGeneratorAttribute.cs
- ProfileModule.cs
- BoundColumn.cs
- Button.cs
- DataControlCommands.cs
- ColumnResizeUndoUnit.cs
- ClientSession.cs
- SerializerWriterEventHandlers.cs
- ProcessInputEventArgs.cs
- CapabilitiesRule.cs
- TraceProvider.cs
- FragmentQueryProcessor.cs
- WebPartVerbCollection.cs
- ImageDesigner.cs
- autovalidator.cs
- AppliedDeviceFiltersDialog.cs
- XmlSortKey.cs
- VisualTreeHelper.cs
- NumericExpr.cs
- SpecialNameAttribute.cs
- ErrorReporting.cs
- AsyncPostBackErrorEventArgs.cs
- WebPartZone.cs
- TypeAccessException.cs
- ZipFileInfoCollection.cs
- UnionExpr.cs
- SamlAuthenticationStatement.cs
- RootProfilePropertySettingsCollection.cs
- DomainUpDown.cs
- PointCollectionConverter.cs
- DBDataPermissionAttribute.cs
- SynchronizationHandlesCodeDomSerializer.cs
- TextLineResult.cs
- ChildrenQuery.cs
- DBNull.cs
- SafeCryptHandles.cs
- HttpConfigurationContext.cs
- latinshape.cs
- FillErrorEventArgs.cs
- ConfigViewGenerator.cs
- Peer.cs
- ConfigurationProperty.cs
- DataBoundControlHelper.cs
- RuntimeConfigLKG.cs
- BoundPropertyEntry.cs
- Trigger.cs
- MeshGeometry3D.cs
- VirtualizedItemPattern.cs
- WorkflowApplicationUnloadedException.cs
- ListParaClient.cs
- ColorAnimationBase.cs
- DelegatingConfigHost.cs
- TrackBarDesigner.cs
- SqlCacheDependencyDatabaseCollection.cs
- CellCreator.cs
- TextEffectCollection.cs
- InputMethodStateChangeEventArgs.cs
- SqlTransaction.cs
- WebConfigurationFileMap.cs
- MultiSelector.cs
- TabItemWrapperAutomationPeer.cs
- PackWebResponse.cs
- WebPartCancelEventArgs.cs
- LocatorGroup.cs
- InputReportEventArgs.cs
- MergeFailedEvent.cs
- Soap.cs
- SchemaMerger.cs
- ToolStripItemBehavior.cs
- TypeToken.cs
- _RequestCacheProtocol.cs
- DbMetaDataCollectionNames.cs
- SerializationInfoEnumerator.cs
- BaseProcessProtocolHandler.cs
- HtmlHistory.cs
- EnumerableRowCollectionExtensions.cs
- TypeElement.cs