Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / ProcessActivityTreeOptions.cs / 1305376 / ProcessActivityTreeOptions.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities { using System.Collections.Generic; using System.Activities.Validation; using System.Runtime; class ProcessActivityTreeOptions { static ProcessActivityTreeOptions validationOptions; static ProcessActivityTreeOptions singleLevelValidationOptions; static ProcessActivityTreeOptions fullCachingOptions; static ProcessActivityTreeOptions finishCachingSubtreeOptionsWithCreateEmptyBindings; static ProcessActivityTreeOptions finishCachingSubtreeOptionsWithoutCreateEmptyBindings; ProcessActivityTreeOptions() { } public static ProcessActivityTreeOptions FullCachingOptions { get { if (fullCachingOptions == null) { fullCachingOptions = new ProcessActivityTreeOptions { SkipIfCached = true, CreateEmptyBindings = true, OnlyCallCallbackForDeclarations = true }; } return fullCachingOptions; } } public static ProcessActivityTreeOptions ValidationOptions { get { if (validationOptions == null) { validationOptions = new ProcessActivityTreeOptions { SkipPrivateChildren = false, // We don't want to interfere with activities doing null-checks // by creating empty bindings. CreateEmptyBindings = false }; } return validationOptions; } } static ProcessActivityTreeOptions SingleLevelValidationOptions { get { if (singleLevelValidationOptions == null) { singleLevelValidationOptions = new ProcessActivityTreeOptions { SkipPrivateChildren = false, // We don't want to interfere with activities doing null-checks // by creating empty bindings. CreateEmptyBindings = false, OnlyVisitSingleLevel = true }; } return singleLevelValidationOptions; } } static ProcessActivityTreeOptions FinishCachingSubtreeOptionsWithoutCreateEmptyBindings { get { if (finishCachingSubtreeOptionsWithoutCreateEmptyBindings == null) { // We don't want to run constraints and we only want to hit // the public path. finishCachingSubtreeOptionsWithoutCreateEmptyBindings = new ProcessActivityTreeOptions { SkipConstraints = true, StoreTempViolations = true }; } return finishCachingSubtreeOptionsWithoutCreateEmptyBindings; } } static ProcessActivityTreeOptions FinishCachingSubtreeOptionsWithCreateEmptyBindings { get { if (finishCachingSubtreeOptionsWithCreateEmptyBindings == null) { // We don't want to run constraints and we only want to hit // the public path. finishCachingSubtreeOptionsWithCreateEmptyBindings = new ProcessActivityTreeOptions { SkipConstraints = true, CreateEmptyBindings = true, StoreTempViolations = true }; } return finishCachingSubtreeOptionsWithCreateEmptyBindings; } } public static ProcessActivityTreeOptions GetFinishCachingSubtreeOptions(ProcessActivityTreeOptions originalOptions) { if (originalOptions.CreateEmptyBindings) { return ProcessActivityTreeOptions.FinishCachingSubtreeOptionsWithCreateEmptyBindings; } else { return ProcessActivityTreeOptions.FinishCachingSubtreeOptionsWithoutCreateEmptyBindings; } } public static ProcessActivityTreeOptions GetValidationOptions(ValidationSettings settings) { if (settings.SingleLevel) { return ProcessActivityTreeOptions.SingleLevelValidationOptions; } else { return ProcessActivityTreeOptions.ValidationOptions; } } public bool SkipIfCached { get; private set; } public bool CreateEmptyBindings { get; private set; } public bool SkipPrivateChildren { get; private set; } public bool OnlyCallCallbackForDeclarations { get; private set; } public bool SkipConstraints { get; private set; } public bool OnlyVisitSingleLevel { get; private set; } public bool StoreTempViolations { get; private set; } public bool IsRuntimeReadyOptions { get { // We don't really support progressive caching at runtime so we only set ourselves // as runtime ready if we cached the whole workflow and created empty bindings. // In order to support progressive caching we need to deal with the following // issues: // * We need a mechanism for supporting activities which supply extensions // * We need to understand when we haven't created empty bindings so that // we can progressively create them return !this.SkipPrivateChildren && this.CreateEmptyBindings; } } } } // 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
- RectIndependentAnimationStorage.cs
- DbDataRecord.cs
- EasingKeyFrames.cs
- ListViewInsertedEventArgs.cs
- Mutex.cs
- MultipleViewProviderWrapper.cs
- XmlBinaryReader.cs
- CustomAttributeBuilder.cs
- EntityClientCacheEntry.cs
- OdbcConnection.cs
- LoginCancelEventArgs.cs
- DataGridColumnReorderingEventArgs.cs
- PolicyImporterElementCollection.cs
- XmlComment.cs
- SoapProcessingBehavior.cs
- Site.cs
- AssemblyUtil.cs
- ProxyWebPart.cs
- DependencyObjectProvider.cs
- GlobalizationAssembly.cs
- PolicyLevel.cs
- SignatureConfirmationElement.cs
- ResourceWriter.cs
- CharStorage.cs
- GridView.cs
- TextEmbeddedObject.cs
- WebRequest.cs
- WebPartMinimizeVerb.cs
- DataBindingHandlerAttribute.cs
- IChannel.cs
- TrimSurroundingWhitespaceAttribute.cs
- DesignerExtenders.cs
- RemoteWebConfigurationHost.cs
- TraceUtility.cs
- InputLanguage.cs
- FixedBufferAttribute.cs
- TextSimpleMarkerProperties.cs
- GestureRecognizer.cs
- X509Extension.cs
- ActivityExecutionContextCollection.cs
- ZipIOLocalFileBlock.cs
- XmlReader.cs
- TableCell.cs
- ClientSideProviderDescription.cs
- CustomValidator.cs
- EpmSyndicationContentSerializer.cs
- ProxyHelper.cs
- XmlRawWriterWrapper.cs
- X509CertificateCollection.cs
- ArithmeticLiteral.cs
- PersonalizationStateInfoCollection.cs
- InheritablePropertyChangeInfo.cs
- GridViewRowPresenterBase.cs
- ReflectionTypeLoadException.cs
- CaseInsensitiveHashCodeProvider.cs
- ConversionContext.cs
- DateTimeOffset.cs
- Brushes.cs
- StrongName.cs
- Int64Storage.cs
- BaseDataBoundControlDesigner.cs
- OrderablePartitioner.cs
- ExceptionNotification.cs
- TableAdapterManagerMethodGenerator.cs
- NumberFormatInfo.cs
- Quack.cs
- InfoCardRSACryptoProvider.cs
- ToolStripDropDownButton.cs
- TextComposition.cs
- ValidatorCompatibilityHelper.cs
- VerificationAttribute.cs
- InvalidOleVariantTypeException.cs
- JsonXmlDataContract.cs
- ProcessThreadDesigner.cs
- _HelperAsyncResults.cs
- CapabilitiesRule.cs
- DataTableMapping.cs
- ChtmlFormAdapter.cs
- FormCollection.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- basecomparevalidator.cs
- PatternMatcher.cs
- MetabaseSettingsIis7.cs
- UriSection.cs
- ReferentialConstraint.cs
- ListViewInsertEventArgs.cs
- SqlDataSourceCommandParser.cs
- GeometryHitTestResult.cs
- ControlPropertyNameConverter.cs
- SystemDropShadowChrome.cs
- CollectionView.cs
- FunctionDetailsReader.cs
- DesigntimeLicenseContextSerializer.cs
- ExpressionNode.cs
- DbDataAdapter.cs
- EventLog.cs
- FragmentNavigationEventArgs.cs
- XhtmlTextWriter.cs
- ComponentRenameEvent.cs
- ToolboxBitmapAttribute.cs