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
- SystemIPv6InterfaceProperties.cs
- WaitForChangedResult.cs
- EditingScopeUndoUnit.cs
- FormViewPagerRow.cs
- BrowserDefinition.cs
- DateTimePicker.cs
- FormClosedEvent.cs
- FixedSOMTableCell.cs
- ExtendedPropertyDescriptor.cs
- PropertyTabAttribute.cs
- PartitionedDataSource.cs
- FrameworkElementFactoryMarkupObject.cs
- AssemblyAssociatedContentFileAttribute.cs
- TypedRowGenerator.cs
- XmlAutoDetectWriter.cs
- LocalizabilityAttribute.cs
- TrustLevel.cs
- PersonalizationState.cs
- GuidTagList.cs
- CookieParameter.cs
- DataGridColumnHeadersPresenterAutomationPeer.cs
- TemplateControl.cs
- DesignerActionListCollection.cs
- RemoteWebConfigurationHost.cs
- MulticastOption.cs
- Point4D.cs
- NonClientArea.cs
- SettingsPropertyIsReadOnlyException.cs
- ActivityExecutionContext.cs
- HtmlToClrEventProxy.cs
- Int16AnimationUsingKeyFrames.cs
- OptimizedTemplateContentHelper.cs
- ReadOnlyTernaryTree.cs
- DiffuseMaterial.cs
- StyleSelector.cs
- FileDetails.cs
- StylusPoint.cs
- PageThemeParser.cs
- MetadataException.cs
- BitmapPalette.cs
- IPipelineRuntime.cs
- AssemblyCollection.cs
- MdiWindowListItemConverter.cs
- TextTreePropertyUndoUnit.cs
- NativeMethods.cs
- AuthenticationSection.cs
- DataServiceExpressionVisitor.cs
- ReadOnlyTernaryTree.cs
- QueryOperationResponseOfT.cs
- StateRuntime.cs
- mda.cs
- DataGridViewEditingControlShowingEventArgs.cs
- RSACryptoServiceProvider.cs
- CodeDelegateInvokeExpression.cs
- BulletChrome.cs
- AutomationFocusChangedEventArgs.cs
- SystemDiagnosticsSection.cs
- Schedule.cs
- SQLCharsStorage.cs
- Preprocessor.cs
- XmlCodeExporter.cs
- GlobalProxySelection.cs
- SRef.cs
- EntityProxyFactory.cs
- AdvancedBindingPropertyDescriptor.cs
- OdbcConnection.cs
- TraceSection.cs
- ChildTable.cs
- GridLength.cs
- ExpressionPrefixAttribute.cs
- ContextMenuAutomationPeer.cs
- StreamWithDictionary.cs
- MediaElement.cs
- AuthenticationSection.cs
- Model3D.cs
- InfoCardArgumentException.cs
- ActionFrame.cs
- BorderGapMaskConverter.cs
- AssemblyName.cs
- BehaviorDragDropEventArgs.cs
- SerialPort.cs
- SchemaTableOptionalColumn.cs
- NamedPipeConnectionPoolSettingsElement.cs
- MultiByteCodec.cs
- Matrix.cs
- RuleSetCollection.cs
- BindableTemplateBuilder.cs
- RealProxy.cs
- TabletDeviceInfo.cs
- ScaleTransform3D.cs
- Variable.cs
- COM2AboutBoxPropertyDescriptor.cs
- HttpHandlerAction.cs
- UserControlCodeDomTreeGenerator.cs
- util.cs
- GeometryCollection.cs
- WebHttpDispatchOperationSelector.cs
- NavigationHelper.cs
- StringConverter.cs
- FontResourceCache.cs