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
- CustomSignedXml.cs
- TableItemStyle.cs
- ReadOnlyDataSourceView.cs
- X509SecurityTokenAuthenticator.cs
- EncryptedKey.cs
- MethodToken.cs
- ResXDataNode.cs
- MetadataArtifactLoaderResource.cs
- WebResourceAttribute.cs
- StringDictionaryEditor.cs
- ListViewInsertionMark.cs
- Encoder.cs
- BStrWrapper.cs
- CreateParams.cs
- SimpleRecyclingCache.cs
- EncryptedPackage.cs
- NotifyInputEventArgs.cs
- BoundColumn.cs
- TitleStyle.cs
- ReadOnlyDictionary.cs
- ToolStripDropDownClosingEventArgs.cs
- DesignSurfaceManager.cs
- ProtocolsConfigurationHandler.cs
- MembershipValidatePasswordEventArgs.cs
- WhitespaceRule.cs
- ProjectionPath.cs
- WorkerRequest.cs
- TextParaLineResult.cs
- PublisherMembershipCondition.cs
- COSERVERINFO.cs
- ComponentChangedEvent.cs
- FastEncoderWindow.cs
- WebPartEditorApplyVerb.cs
- TabItemWrapperAutomationPeer.cs
- BaseCodePageEncoding.cs
- ObjectIDGenerator.cs
- AdCreatedEventArgs.cs
- XpsFilter.cs
- BaseCollection.cs
- WebPartDisplayModeEventArgs.cs
- Container.cs
- Matrix3DValueSerializer.cs
- SqlSelectStatement.cs
- AsymmetricSignatureDeformatter.cs
- FontResourceCache.cs
- COM2PictureConverter.cs
- path.cs
- GeneralTransform.cs
- ContentIterators.cs
- MetaColumn.cs
- Crc32.cs
- PlatformNotSupportedException.cs
- FormViewUpdatedEventArgs.cs
- BehaviorDragDropEventArgs.cs
- Figure.cs
- TreeNode.cs
- XmlnsCache.cs
- SortedList.cs
- GetResponse.cs
- PathFigureCollection.cs
- WindowAutomationPeer.cs
- SchemaTypeEmitter.cs
- SQLGuidStorage.cs
- ManagementException.cs
- ListViewItemSelectionChangedEvent.cs
- QueuePathDialog.cs
- PrintingPermission.cs
- prefixendpointaddressmessagefilter.cs
- Point3D.cs
- SoapAttributeAttribute.cs
- SafeRightsManagementPubHandle.cs
- CfgArc.cs
- RoleManagerSection.cs
- ObjectSet.cs
- SoapServerMessage.cs
- ZipIOExtraFieldPaddingElement.cs
- FocusManager.cs
- RawContentTypeMapper.cs
- Manipulation.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- ConstraintConverter.cs
- QueryRewriter.cs
- NodeLabelEditEvent.cs
- KernelTypeValidation.cs
- DropDownButton.cs
- Version.cs
- _ShellExpression.cs
- SpnEndpointIdentityExtension.cs
- BitmapCodecInfoInternal.cs
- TcpTransportManager.cs
- XmlValueConverter.cs
- DecoderFallback.cs
- ZipPackagePart.cs
- MissingManifestResourceException.cs
- Rotation3DAnimationUsingKeyFrames.cs
- ValidatingReaderNodeData.cs
- RemoteWebConfigurationHostServer.cs
- ScrollChrome.cs
- ScriptMethodAttribute.cs
- InertiaTranslationBehavior.cs