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
- ManagedIStream.cs
- ObjectStateManagerMetadata.cs
- SqlBooleanizer.cs
- ApplicationDirectoryMembershipCondition.cs
- Process.cs
- ObjectListComponentEditor.cs
- GenericsInstances.cs
- EventWaitHandle.cs
- GridItemPattern.cs
- XmlEventCache.cs
- HelpInfo.cs
- ActivityMarkupSerializationProvider.cs
- PersistenceTypeAttribute.cs
- SqlTriggerContext.cs
- BindingUtils.cs
- RowToFieldTransformer.cs
- RuntimeVariablesExpression.cs
- SynchronizationContext.cs
- UserInitiatedRoutedEventPermission.cs
- IntPtr.cs
- SemanticResultValue.cs
- HGlobalSafeHandle.cs
- IDictionary.cs
- ParseNumbers.cs
- ReturnType.cs
- SqlAliaser.cs
- SizeIndependentAnimationStorage.cs
- GAC.cs
- ThreadExceptionEvent.cs
- PlainXmlWriter.cs
- PropertyEmitter.cs
- GraphicsPathIterator.cs
- GatewayIPAddressInformationCollection.cs
- ToolStripArrowRenderEventArgs.cs
- smtpconnection.cs
- MessageEnumerator.cs
- XmlDataCollection.cs
- X509SecurityTokenAuthenticator.cs
- CancelEventArgs.cs
- DashStyles.cs
- TransportSecurityBindingElement.cs
- XmlElementList.cs
- CapabilitiesSection.cs
- WmlCalendarAdapter.cs
- ParseChildrenAsPropertiesAttribute.cs
- WebBrowserProgressChangedEventHandler.cs
- Size.cs
- StringTraceRecord.cs
- AtomicFile.cs
- AdapterUtil.cs
- SmtpReplyReaderFactory.cs
- XmlSchemaSimpleTypeUnion.cs
- __ComObject.cs
- PlatformCulture.cs
- SyntaxCheck.cs
- TextParaLineResult.cs
- IgnoreDataMemberAttribute.cs
- ConfigXmlElement.cs
- ItemsPresenter.cs
- EmptyStringExpandableObjectConverter.cs
- XmlFormatExtensionPrefixAttribute.cs
- PageMediaType.cs
- TextContainerHelper.cs
- EventTask.cs
- FileIOPermission.cs
- DataBindEngine.cs
- SqlReferenceCollection.cs
- EventManager.cs
- XmlIlVisitor.cs
- TableLayoutPanel.cs
- dbdatarecord.cs
- XmlSchemaImporter.cs
- Tokenizer.cs
- XmlNodeReader.cs
- EncryptedKeyIdentifierClause.cs
- CompilerLocalReference.cs
- SqlConnectionHelper.cs
- TreeViewCancelEvent.cs
- RepeaterCommandEventArgs.cs
- CodeObject.cs
- ProviderConnectionPoint.cs
- ProtectedProviderSettings.cs
- XDeferredAxisSource.cs
- SlipBehavior.cs
- CompilationSection.cs
- CodePageUtils.cs
- ContextMenuAutomationPeer.cs
- ArrangedElementCollection.cs
- AtomEntry.cs
- Expr.cs
- DefaultEventAttribute.cs
- IPAddress.cs
- HttpHandlersInstallComponent.cs
- Byte.cs
- ListViewDesigner.cs
- LinqDataSourceInsertEventArgs.cs
- HostingPreferredMapPath.cs
- XmlSerializerFactory.cs
- Debug.cs
- TableRowCollection.cs