Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / WorkflowInspectionServices.cs / 1305376 / WorkflowInspectionServices.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.Activities { using System; using System.Collections.Generic; using System.Collections; using System.Runtime; using System.Activities.Validation; public static class WorkflowInspectionServices { public static void CacheMetadata(Activity rootActivity) { CacheMetadata(rootActivity, null); } public static void CacheMetadata(Activity rootActivity, LocationReferenceEnvironment hostEnvironment) { if (rootActivity == null) { throw FxTrace.Exception.ArgumentNull("rootActivity"); } if (rootActivity.HasBeenAssociatedWithAnInstance) { throw FxTrace.Exception.AsError(new InvalidOperationException(SR.RootActivityAlreadyAssociatedWithInstance(rootActivity.DisplayName))); } IListvalidationErrors = null; if (hostEnvironment == null) { hostEnvironment = new ActivityLocationReferenceEnvironment(); } ActivityUtilities.CacheRootMetadata(rootActivity, hostEnvironment, ProcessActivityTreeOptions.FullCachingOptions, null, ref validationErrors); ActivityValidationServices.ThrowIfViolationsExist(validationErrors); } public static Activity Resolve(Activity root, string id) { if (root == null) { throw FxTrace.Exception.ArgumentNull("root"); } if (string.IsNullOrEmpty(id)) { throw FxTrace.Exception.ArgumentNullOrEmpty("id"); } if (!root.IsMetadataCached) { IList validationErrors = null; ActivityUtilities.CacheRootMetadata(root, new ActivityLocationReferenceEnvironment(), ProcessActivityTreeOptions.FullCachingOptions, null, ref validationErrors); ActivityValidationServices.ThrowIfViolationsExist(validationErrors); } QualifiedId parsedId = QualifiedId.Parse(id); Activity result; if (!QualifiedId.TryGetElementFromRoot(root, parsedId, out result)) { throw FxTrace.Exception.Argument("id", SR.IdNotFoundInWorkflow(id)); } return result; } public static IEnumerable GetActivities(Activity activity) { if (activity == null) { throw FxTrace.Exception.ArgumentNull("activity"); } if (!activity.IsMetadataCached) { IList validationErrors = null; ActivityUtilities.CacheRootMetadata(activity, new ActivityLocationReferenceEnvironment(), ProcessActivityTreeOptions.FullCachingOptions, null, ref validationErrors); ActivityValidationServices.ThrowIfViolationsExist(validationErrors); } int i = 0; for (; i < activity.RuntimeArguments.Count; i++) { RuntimeArgument argument = activity.RuntimeArguments[i]; if (argument.BoundArgument != null && argument.BoundArgument.Expression != null) { yield return argument.BoundArgument.Expression; } } for (i = 0; i < activity.RuntimeVariables.Count; i++) { Variable variable = activity.RuntimeVariables[i]; if (variable.Default != null) { yield return variable.Default; } } for (i = 0; i < activity.ImplementationVariables.Count; i++) { Variable variable = activity.ImplementationVariables[i]; if (variable.Default != null) { yield return variable.Default; } } for (i = 0; i < activity.Children.Count; i++) { yield return activity.Children[i]; } for (i = 0; i < activity.ImportedChildren.Count; i++) { yield return activity.ImportedChildren[i]; } for (i = 0; i < activity.ImplementationChildren.Count; i++) { yield return activity.ImplementationChildren[i]; } for (i = 0; i < activity.Delegates.Count; i++) { ActivityDelegate activityDelegate = activity.Delegates[i]; if (activityDelegate.Handler != null) { yield return activityDelegate.Handler; } } for (i = 0; i < activity.ImportedDelegates.Count; i++) { ActivityDelegate activityDelegate = activity.ImportedDelegates[i]; if (activityDelegate.Handler != null) { yield return activityDelegate.Handler; } } for (i = 0; i < activity.ImplementationDelegates.Count; i++) { ActivityDelegate activityDelegate = activity.ImplementationDelegates[i]; if (activityDelegate.Handler != null) { yield return activityDelegate.Handler; } } } } } // 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
- SafeRightsManagementSessionHandle.cs
- DateTimeOffset.cs
- MarginsConverter.cs
- FileLoadException.cs
- Environment.cs
- cache.cs
- AmbientProperties.cs
- AnimatedTypeHelpers.cs
- UIHelper.cs
- ClientTarget.cs
- WebPermission.cs
- ZipIOCentralDirectoryFileHeader.cs
- TypeInfo.cs
- MenuItemBinding.cs
- EntityViewGenerationConstants.cs
- RegionData.cs
- Span.cs
- TypeInitializationException.cs
- DLinqDataModelProvider.cs
- StreamInfo.cs
- DynamicRenderer.cs
- CompilerHelpers.cs
- ShaderEffect.cs
- KnownTypeHelper.cs
- StagingAreaInputItem.cs
- ZoneIdentityPermission.cs
- _MultipleConnectAsync.cs
- StrokeRenderer.cs
- PageContentAsyncResult.cs
- SetUserPreferenceRequest.cs
- EntityCommandExecutionException.cs
- Brush.cs
- OrderedDictionary.cs
- Composition.cs
- Point3DIndependentAnimationStorage.cs
- PlainXmlDeserializer.cs
- SoapObjectWriter.cs
- ReachObjectContext.cs
- InfoCardSymmetricCrypto.cs
- RootProfilePropertySettingsCollection.cs
- BindingUtils.cs
- ManagementException.cs
- ImageIndexConverter.cs
- SpecularMaterial.cs
- NewArrayExpression.cs
- HttpWebRequest.cs
- EntityContainerEmitter.cs
- ContainerParagraph.cs
- PresentationTraceSources.cs
- InfoCardAsymmetricCrypto.cs
- Transform3D.cs
- AssemblyContextControlItem.cs
- NavigationProperty.cs
- ImageMapEventArgs.cs
- ContentType.cs
- StateMachineExecutionState.cs
- HttpApplication.cs
- QilIterator.cs
- UpdateCommand.cs
- WebServiceHandler.cs
- Calendar.cs
- Parameter.cs
- FormsIdentity.cs
- ELinqQueryState.cs
- XhtmlMobileTextWriter.cs
- CodeAttachEventStatement.cs
- DataGridViewControlCollection.cs
- Exceptions.cs
- Utils.cs
- AsyncOperationContext.cs
- OwnerDrawPropertyBag.cs
- CopyOfAction.cs
- XPathMessageFilterTable.cs
- datacache.cs
- WindowsPen.cs
- ImmutableObjectAttribute.cs
- GridItemCollection.cs
- GridSplitterAutomationPeer.cs
- ButtonPopupAdapter.cs
- AssociationSetEnd.cs
- XhtmlBasicCommandAdapter.cs
- EncodingNLS.cs
- RepeaterItemEventArgs.cs
- Page.cs
- UIElementAutomationPeer.cs
- ChtmlCalendarAdapter.cs
- HtmlWindow.cs
- CodeGen.cs
- CompilerGeneratedAttribute.cs
- BindingBase.cs
- UserControlBuildProvider.cs
- DefaultEventAttribute.cs
- ColumnTypeConverter.cs
- WizardPanelChangingEventArgs.cs
- DataGridItem.cs
- InputLanguageProfileNotifySink.cs
- ClientSettingsProvider.cs
- MarkupProperty.cs
- DesigntimeLicenseContextSerializer.cs
- PageRanges.cs