Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Statements / Sequence.cs / 1305376 / Sequence.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities.Statements { using System.Activities; using System.Activities.Validation; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Runtime.Collections; using System.Windows.Markup; [ContentProperty("Activities")] public sealed class Sequence : NativeActivity { Collectionactivities; Collection variables; Variable lastIndexHint; CompletionCallback onChildComplete; public Sequence() : base() { this.lastIndexHint = new Variable (); this.onChildComplete = new CompletionCallback(InternalExecute); } public Collection Variables { get { if (this.variables == null) { this.variables = new ValidatingCollection { // disallow null values OnAddValidationCallback = item => { if (item == null) { throw FxTrace.Exception.ArgumentNull("item"); } } }; } return this.variables; } } [DependsOn("Variables")] public Collection Activities { get { if (this.activities == null) { this.activities = new ValidatingCollection { // disallow null values OnAddValidationCallback = item => { if (item == null) { throw FxTrace.Exception.ArgumentNull("item"); } } }; } return this.activities; } } protected override void CacheMetadata(NativeActivityMetadata metadata) { metadata.SetChildrenCollection(this.Activities); metadata.SetVariablesCollection(this.Variables); metadata.AddImplementationVariable(this.lastIndexHint); } protected override void Execute(NativeActivityContext context) { if (this.activities != null && this.Activities.Count > 0) { Activity nextChild = this.Activities[0]; context.ScheduleActivity(nextChild, this.onChildComplete); } } void InternalExecute(NativeActivityContext context, ActivityInstance completedInstance) { int completedInstanceIndex = this.lastIndexHint.Get(context); if (completedInstanceIndex >= this.Activities.Count || this.Activities[completedInstanceIndex] != completedInstance.Activity) { completedInstanceIndex = this.Activities.IndexOf(completedInstance.Activity); } int nextChildIndex = completedInstanceIndex + 1; if (nextChildIndex == this.Activities.Count) { return; } Activity nextChild = this.Activities[nextChildIndex]; context.ScheduleActivity(nextChild, this.onChildComplete); this.lastIndexHint.Set(context, nextChildIndex); } } } // 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
- NameObjectCollectionBase.cs
- TypeConverter.cs
- NetPipeSection.cs
- FunctionQuery.cs
- MissingMethodException.cs
- InfiniteTimeSpanConverter.cs
- Configuration.cs
- SessionIDManager.cs
- ProcessStartInfo.cs
- CodeDOMUtility.cs
- ProviderConnectionPoint.cs
- CacheDependency.cs
- FontDialog.cs
- RegexCaptureCollection.cs
- SchemaCollectionCompiler.cs
- InputMethodStateChangeEventArgs.cs
- PrefixQName.cs
- AssertSection.cs
- UidManager.cs
- SignatureHelper.cs
- ProfileSettingsCollection.cs
- DeclarativeConditionsCollection.cs
- TableRowCollection.cs
- FtpRequestCacheValidator.cs
- CacheDependency.cs
- DbFunctionCommandTree.cs
- AppDomainFactory.cs
- Configuration.cs
- ConsoleCancelEventArgs.cs
- OleDbDataAdapter.cs
- FastEncoderStatics.cs
- AutomationElement.cs
- XmlReflectionMember.cs
- ContentOperations.cs
- StylusShape.cs
- EmbeddedMailObject.cs
- HandoffBehavior.cs
- LayoutEngine.cs
- ManageRequest.cs
- DataGridViewIntLinkedList.cs
- StringAnimationBase.cs
- CodeDefaultValueExpression.cs
- WebPartHelpVerb.cs
- Operator.cs
- SecurityUtils.cs
- LineBreakRecord.cs
- HttpResponse.cs
- XMLSyntaxException.cs
- HScrollProperties.cs
- PrivilegedConfigurationManager.cs
- HttpHeaderCollection.cs
- HasCopySemanticsAttribute.cs
- ConsoleTraceListener.cs
- MethodCallTranslator.cs
- DesignBindingPropertyDescriptor.cs
- DebugController.cs
- HttpCookiesSection.cs
- SettingsSection.cs
- XhtmlTextWriter.cs
- ModulesEntry.cs
- ScrollItemPattern.cs
- EntityTemplateFactory.cs
- SerializationException.cs
- SafeBitVector32.cs
- DeobfuscatingStream.cs
- TextAutomationPeer.cs
- SqlConnectionFactory.cs
- SecurityResources.cs
- XsdBuilder.cs
- OrderedDictionary.cs
- AttributeEmitter.cs
- ColumnHeaderConverter.cs
- ColorMap.cs
- _HeaderInfoTable.cs
- SmiXetterAccessMap.cs
- HtmlTextViewAdapter.cs
- InfoCardRSACryptoProvider.cs
- UniqueCodeIdentifierScope.cs
- WrapPanel.cs
- SeekableReadStream.cs
- TextOptionsInternal.cs
- BooleanKeyFrameCollection.cs
- xsdvalidator.cs
- EntityViewGenerator.cs
- RelationshipWrapper.cs
- BuildManager.cs
- ToolStripLocationCancelEventArgs.cs
- VisualStyleInformation.cs
- SymDocumentType.cs
- StateMachine.cs
- BamlResourceContent.cs
- BitArray.cs
- SHA256.cs
- XmlSerializationGeneratedCode.cs
- ListItemCollection.cs
- Configuration.cs
- ExpressionBuilderCollection.cs
- StylusEditingBehavior.cs
- SocketElement.cs
- RepeatButtonAutomationPeer.cs