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
- RSAOAEPKeyExchangeFormatter.cs
- BasicExpandProvider.cs
- Logging.cs
- CompositeDispatchFormatter.cs
- CalendarDay.cs
- safesecurityhelperavalon.cs
- Figure.cs
- WindowsPen.cs
- Vector3DKeyFrameCollection.cs
- NetPipeSection.cs
- UnsafeNativeMethodsMilCoreApi.cs
- LabelAutomationPeer.cs
- Range.cs
- URLBuilder.cs
- AmbientProperties.cs
- SystemResourceKey.cs
- LinqDataSourceDeleteEventArgs.cs
- InputLanguage.cs
- GcSettings.cs
- TypeListConverter.cs
- Style.cs
- _NativeSSPI.cs
- _SingleItemRequestCache.cs
- COAUTHIDENTITY.cs
- HtmlInputImage.cs
- TextComposition.cs
- SqlDataAdapter.cs
- Util.cs
- PeerNameResolver.cs
- Trace.cs
- ClassHandlersStore.cs
- FormatConvertedBitmap.cs
- StylusPointPropertyUnit.cs
- StrokeCollection.cs
- __ComObject.cs
- X509Utils.cs
- Normalizer.cs
- HttpPostClientProtocol.cs
- DataControlCommands.cs
- ExceptionUtil.cs
- CompositeCollection.cs
- CompilationRelaxations.cs
- RootAction.cs
- COM2ExtendedUITypeEditor.cs
- DoubleAverageAggregationOperator.cs
- RecognizerInfo.cs
- BitmapSizeOptions.cs
- Privilege.cs
- PrimitiveCodeDomSerializer.cs
- WebRequest.cs
- ToolStripItemEventArgs.cs
- IImplicitResourceProvider.cs
- BamlTreeUpdater.cs
- DBCSCodePageEncoding.cs
- DragEvent.cs
- PagerSettings.cs
- MappingMetadataHelper.cs
- Container.cs
- UiaCoreTypesApi.cs
- ProxyWebPartManager.cs
- DataGridViewSelectedCellCollection.cs
- unsafenativemethodstextservices.cs
- WebPartsPersonalization.cs
- ResourceExpressionBuilder.cs
- JpegBitmapDecoder.cs
- PageCache.cs
- BulletedListEventArgs.cs
- WindowsRichEditRange.cs
- OLEDB_Enum.cs
- LedgerEntryCollection.cs
- TakeQueryOptionExpression.cs
- RegexGroupCollection.cs
- TokenBasedSetEnumerator.cs
- Configuration.cs
- DataContractAttribute.cs
- UserControlCodeDomTreeGenerator.cs
- DeviceFiltersSection.cs
- LocalizableResourceBuilder.cs
- JournalNavigationScope.cs
- PassportAuthenticationEventArgs.cs
- DataList.cs
- ApplicationCommands.cs
- UnionCodeGroup.cs
- KeyEventArgs.cs
- LinqDataSourceDeleteEventArgs.cs
- BitmapEffectDrawing.cs
- EdmItemError.cs
- RuleElement.cs
- Int64Converter.cs
- SafeNativeMethodsMilCoreApi.cs
- SslStreamSecurityElement.cs
- NetMsmqSecurity.cs
- WebPartEventArgs.cs
- COM2ExtendedUITypeEditor.cs
- TrustVersion.cs
- CalendarDay.cs
- TrackBarDesigner.cs
- CreateUserErrorEventArgs.cs
- AttachedPropertyMethodSelector.cs
- EllipticalNodeOperations.cs