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
- ProbeDuplexAsyncResult.cs
- SecurityContext.cs
- ItemCollectionEditor.cs
- WebBrowserPermission.cs
- __ComObject.cs
- TransformPatternIdentifiers.cs
- PagerSettings.cs
- NamespaceExpr.cs
- Atom10FormatterFactory.cs
- ResourceSet.cs
- AttachedPropertyBrowsableAttribute.cs
- GridViewUpdatedEventArgs.cs
- BooleanSwitch.cs
- PingOptions.cs
- DynamicDataRouteHandler.cs
- ToolStripTextBox.cs
- PngBitmapEncoder.cs
- SqlCacheDependencyDatabase.cs
- WindowsGraphicsCacheManager.cs
- FormatSettings.cs
- BitmapCodecInfo.cs
- TripleDESCryptoServiceProvider.cs
- KeyValueConfigurationCollection.cs
- TimeManager.cs
- DesignColumnCollection.cs
- XamlTreeBuilderBamlRecordWriter.cs
- PropertyToken.cs
- ColorBlend.cs
- EventLogPermissionEntry.cs
- HttpHeaderCollection.cs
- SamlAuthorizationDecisionStatement.cs
- TypeContext.cs
- LicenseException.cs
- UpdateTranslator.cs
- TraceHandlerErrorFormatter.cs
- CommandCollectionEditor.cs
- PolygonHotSpot.cs
- EdmItemError.cs
- DocumentPage.cs
- EncryptedReference.cs
- SQLBytesStorage.cs
- TemplateControlBuildProvider.cs
- MemoryStream.cs
- LicenseProviderAttribute.cs
- CompilationUtil.cs
- X509AsymmetricSecurityKey.cs
- WebControl.cs
- GeometryDrawing.cs
- OpenFileDialog.cs
- TransformPatternIdentifiers.cs
- Thickness.cs
- ListItemCollection.cs
- NestPullup.cs
- HtmlInputHidden.cs
- XmlChoiceIdentifierAttribute.cs
- SimplePropertyEntry.cs
- ExtendedTransformFactory.cs
- ScriptIgnoreAttribute.cs
- HttpCacheVaryByContentEncodings.cs
- SimpleFieldTemplateFactory.cs
- DataGridSortCommandEventArgs.cs
- Dump.cs
- MasterPageParser.cs
- ToolStripButton.cs
- TextRangeProviderWrapper.cs
- TimeBoundedCache.cs
- BinaryConverter.cs
- ResXBuildProvider.cs
- IUnknownConstantAttribute.cs
- ComAdminInterfaces.cs
- UpdateTranslator.cs
- SerializationInfo.cs
- BoolExpr.cs
- RegistryPermission.cs
- PolicyManager.cs
- SortQuery.cs
- FixedSOMTableRow.cs
- DataGridViewCellStyleContentChangedEventArgs.cs
- GridViewRowPresenterBase.cs
- RelatedView.cs
- UnsafeNativeMethods.cs
- ControlCollection.cs
- ConstructorBuilder.cs
- EmbeddedMailObjectsCollection.cs
- ToolboxItemFilterAttribute.cs
- TCEAdapterGenerator.cs
- DocumentOrderQuery.cs
- EntityDataSourceWrapperCollection.cs
- TemplatedWizardStep.cs
- AlignmentXValidation.cs
- EncoderParameters.cs
- PaperSource.cs
- PowerEase.cs
- RuleSettingsCollection.cs
- EnumConverter.cs
- TaskHelper.cs
- ChooseAction.cs
- LogStream.cs
- DataRecordInfo.cs
- OdbcEnvironment.cs