Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Statements / While.cs / 1305376 / While.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities.Statements { using System.Activities.Expressions; using System.Collections.ObjectModel; using System.ComponentModel; using System.Diagnostics.CodeAnalysis; using System.Linq.Expressions; using System.Runtime; using System.Runtime.Collections; using System.Windows.Markup; [SuppressMessage(FxCop.Category.Naming, FxCop.Rule.IdentifiersShouldNotMatchKeywords, Justification = "Optimizing for XAML naming. VB imperative users will [] qualify (e.g. New [While])")] [ContentProperty("Body")] public sealed class While : NativeActivity { CompletionCallback onBodyComplete; CompletionCallbackonConditionComplete; Collection variables; public While() : base() { } public While(Expression > condition) : this() { if (condition == null) { throw FxTrace.Exception.ArgumentNull("condition"); } this.Condition = new LambdaValue (condition); } public While(Activity condition) : this() { if (condition == null) { throw FxTrace.Exception.ArgumentNull("condition"); } this.Condition = condition; } 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; } } [DefaultValue(null)] [DependsOn("Variables")] public Activity Condition { get; set; } [DefaultValue(null)] [DependsOn("Condition")] public Activity Body { get; set; } protected override void CacheMetadata(NativeActivityMetadata metadata) { metadata.SetVariablesCollection(this.Variables); metadata.AddChild(this.Body); if (this.Condition == null) { metadata.AddValidationError(SR.WhileRequiresCondition(this.DisplayName)); } else { metadata.AddChild(this.Condition); } } protected override void Execute(NativeActivityContext context) { ScheduleCondition(context); } void ScheduleCondition(NativeActivityContext context) { Fx.Assert(this.Condition != null, "validated in OnOpen"); if (this.onConditionComplete == null) { this.onConditionComplete = new CompletionCallback (OnConditionComplete); } context.ScheduleActivity(this.Condition, this.onConditionComplete); } void OnConditionComplete(NativeActivityContext context, ActivityInstance completedInstance, bool result) { if (result) { if (this.Body != null) { if (this.onBodyComplete == null) { this.onBodyComplete = new CompletionCallback(OnBodyComplete); } context.ScheduleActivity(this.Body, this.onBodyComplete); } else { ScheduleCondition(context); } } } void OnBodyComplete(NativeActivityContext context, ActivityInstance completedInstance) { ScheduleCondition(context); } } } // 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
- ColorMatrix.cs
- XmlDataSourceView.cs
- TextServicesDisplayAttribute.cs
- MarkupExtensionParser.cs
- HttpWrapper.cs
- WorkflowMarkupSerializationException.cs
- ComPlusSynchronizationContext.cs
- DataServiceQueryOfT.cs
- DockAndAnchorLayout.cs
- EditorBrowsableAttribute.cs
- SystemWebSectionGroup.cs
- DeviceContext.cs
- FigureParagraph.cs
- StyleConverter.cs
- EdmRelationshipRoleAttribute.cs
- ColorPalette.cs
- FrameworkContentElement.cs
- SendingRequestEventArgs.cs
- Serializer.cs
- DocumentViewer.cs
- X509WindowsSecurityToken.cs
- DocumentPageHost.cs
- templategroup.cs
- SystemBrushes.cs
- SqlDataSourceFilteringEventArgs.cs
- BuildProvidersCompiler.cs
- CatalogPart.cs
- XmlBufferReader.cs
- DataBindingCollection.cs
- HyperLinkColumn.cs
- HtmlTernaryTree.cs
- IPPacketInformation.cs
- SynchronizedChannelCollection.cs
- Dictionary.cs
- SignatureResourceHelper.cs
- WebBrowserBase.cs
- StaticSiteMapProvider.cs
- TargetControlTypeAttribute.cs
- BindingContext.cs
- Evidence.cs
- BmpBitmapDecoder.cs
- PenLineJoinValidation.cs
- HeaderFilter.cs
- GZipStream.cs
- HttpWebRequestElement.cs
- TrackingProfileCache.cs
- SocketException.cs
- MDIWindowDialog.cs
- XPathArrayIterator.cs
- CodeMemberProperty.cs
- DataSvcMapFileSerializer.cs
- TypeDescriptionProvider.cs
- WindowsGraphicsCacheManager.cs
- GridViewRowEventArgs.cs
- SafeUserTokenHandle.cs
- DateTimeParse.cs
- InvalidProgramException.cs
- XmlAtomicValue.cs
- HttpServerUtilityWrapper.cs
- HierarchicalDataSourceIDConverter.cs
- NativeRightsManagementAPIsStructures.cs
- MDIWindowDialog.cs
- GeometryModel3D.cs
- AuthorizationRuleCollection.cs
- Misc.cs
- categoryentry.cs
- OrderingQueryOperator.cs
- SqlParameterizer.cs
- AnchorEditor.cs
- ActiveDocumentEvent.cs
- TextBoxDesigner.cs
- SlipBehavior.cs
- _PooledStream.cs
- OdbcStatementHandle.cs
- CompilationUtil.cs
- ComplexPropertyEntry.cs
- ReadWriteSpinLock.cs
- HostingEnvironmentSection.cs
- HttpSysSettings.cs
- Page.cs
- Attributes.cs
- CompiledScopeCriteria.cs
- ReadOnlyTernaryTree.cs
- HandledEventArgs.cs
- ThemeInfoAttribute.cs
- Vector3D.cs
- TypeUtil.cs
- HebrewCalendar.cs
- _NTAuthentication.cs
- _StreamFramer.cs
- SafeSecurityHelper.cs
- VectorAnimation.cs
- WebPartConnectionsEventArgs.cs
- ExternalCalls.cs
- DocumentManager.cs
- shaper.cs
- TextStore.cs
- ExpressionTable.cs
- MatrixAnimationUsingKeyFrames.cs
- ThicknessAnimation.cs