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
- dataprotectionpermissionattribute.cs
- SparseMemoryStream.cs
- ResourceLoader.cs
- ScriptIgnoreAttribute.cs
- Geometry.cs
- InternalControlCollection.cs
- StateChangeEvent.cs
- EdmComplexPropertyAttribute.cs
- EdmItemError.cs
- AttributeAction.cs
- XmlSerializableServices.cs
- ManagementDateTime.cs
- DeclarativeCatalogPart.cs
- SqlWebEventProvider.cs
- TypeUtil.cs
- ComboBoxDesigner.cs
- Assert.cs
- _IPv4Address.cs
- AsmxEndpointPickerExtension.cs
- RedBlackList.cs
- SqlDataSourceCommandEventArgs.cs
- AttachInfo.cs
- ContourSegment.cs
- ClientScriptManagerWrapper.cs
- SQLDateTimeStorage.cs
- ValidationEventArgs.cs
- SmiMetaData.cs
- PropertyItemInternal.cs
- ColorKeyFrameCollection.cs
- OleDbConnectionInternal.cs
- ObservableDictionary.cs
- RtfToXamlLexer.cs
- ThreadStateException.cs
- XmlNamespaceMapping.cs
- SimpleWebHandlerParser.cs
- SystemEvents.cs
- Lease.cs
- PersistenceTask.cs
- DictionarySectionHandler.cs
- SemanticAnalyzer.cs
- httpserverutility.cs
- Material.cs
- DefinitionUpdate.cs
- ReadOnlyNameValueCollection.cs
- DataKey.cs
- DesignerTextViewAdapter.cs
- PersonalizablePropertyEntry.cs
- AuthenticationManager.cs
- SchemaImporterExtensionsSection.cs
- Visual3DCollection.cs
- TemplatePropertyEntry.cs
- RtType.cs
- ReferenceEqualityComparer.cs
- SiteMapNodeCollection.cs
- TypeDelegator.cs
- ContractSearchPattern.cs
- CompositionTarget.cs
- ItemAutomationPeer.cs
- controlskin.cs
- DataTableClearEvent.cs
- BitHelper.cs
- AppDomainInfo.cs
- TimeoutException.cs
- QueuePropertyVariants.cs
- KnownTypeAttribute.cs
- DocumentViewerAutomationPeer.cs
- HyperlinkAutomationPeer.cs
- XmlAnyElementAttributes.cs
- SiteMapHierarchicalDataSourceView.cs
- MethodExpr.cs
- Formatter.cs
- Validator.cs
- StringValidatorAttribute.cs
- DynamicFilter.cs
- VarInfo.cs
- RecordsAffectedEventArgs.cs
- EntryPointNotFoundException.cs
- TTSVoice.cs
- ValidationManager.cs
- GroupItemAutomationPeer.cs
- AttributeQuery.cs
- Ipv6Element.cs
- SelectionUIHandler.cs
- SoapExtensionTypeElement.cs
- _DisconnectOverlappedAsyncResult.cs
- WebBrowserSiteBase.cs
- DSACryptoServiceProvider.cs
- MulticastOption.cs
- BamlRecordWriter.cs
- SHA256Managed.cs
- UserPreferenceChangingEventArgs.cs
- PointLightBase.cs
- FormattedTextSymbols.cs
- SoapConverter.cs
- PrintController.cs
- XmlAtomicValue.cs
- RequiredAttributeAttribute.cs
- ConfigPathUtility.cs
- PropertyPathConverter.cs
- ResizeBehavior.cs