Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Statements / If.cs / 1305376 / If.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities.Statements { using System.Activities; using System.Collections.ObjectModel; using System.ComponentModel; using System.Diagnostics.CodeAnalysis; using System.Linq.Expressions; using System.Runtime; using System.Windows.Markup; [SuppressMessage(FxCop.Category.Naming, FxCop.Rule.IdentifiersShouldNotMatchKeywords, Justification = "Optimizing for XAML naming. VB imperative users will [] qualify (e.g. New [If])")] public sealed class If : NativeActivity { public If() : base() { } public If(Expression> condition) : this() { if (condition == null) { throw FxTrace.Exception.ArgumentNull("condition"); } this.Condition = new InArgument (condition); } public If(Activity condition) : this() { if (condition == null) { throw FxTrace.Exception.ArgumentNull("condition"); } this.Condition = new InArgument (condition); } public If(InArgument condition) : this() { if (condition == null) { throw FxTrace.Exception.ArgumentNull("condition"); } this.Condition = condition; } [RequiredArgument] [DefaultValue(null)] public InArgument Condition { get; set; } [DefaultValue(null)] [DependsOn("Condition")] public Activity Then { get; set; } [DefaultValue(null)] [DependsOn("Then")] public Activity Else { get; set; } protected override void Execute(NativeActivityContext context) { if (Condition.Get(context)) { if (Then != null) { context.ScheduleActivity(Then); } } else if (Else != null) { context.ScheduleActivity(Else); } } protected override void CacheMetadata(NativeActivityMetadata metadata) { RuntimeArgument conditionArgument = new RuntimeArgument("Condition", typeof(bool), ArgumentDirection.In, true); metadata.Bind(this.Condition, conditionArgument); metadata.SetArgumentsCollection(new Collection { conditionArgument }); Collection children = null; if (this.Then != null) { ActivityUtilities.Add(ref children, this.Then); } if (this.Else != null) { ActivityUtilities.Add(ref children, this.Else); } metadata.SetChildrenCollection(children); } } } // 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
- TableLayoutColumnStyleCollection.cs
- Parameter.cs
- Maps.cs
- CriticalFinalizerObject.cs
- __TransparentProxy.cs
- XmlEnumAttribute.cs
- ReadOnlyCollectionBase.cs
- GridProviderWrapper.cs
- ProviderSettingsCollection.cs
- Crypto.cs
- CredentialCache.cs
- TouchFrameEventArgs.cs
- RootBrowserWindowProxy.cs
- DomainUpDown.cs
- TraceSection.cs
- Int16AnimationUsingKeyFrames.cs
- MenuItemCollection.cs
- FocusWithinProperty.cs
- initElementDictionary.cs
- DelegateSerializationHolder.cs
- XmlSchemaExporter.cs
- CustomErrorCollection.cs
- ErrorFormatterPage.cs
- IgnoreSection.cs
- XPathParser.cs
- RTLAwareMessageBox.cs
- FormClosingEvent.cs
- OracleBinary.cs
- JapaneseLunisolarCalendar.cs
- DataRowChangeEvent.cs
- UnsafeNativeMethods.cs
- CompositeScriptReference.cs
- LicenseProviderAttribute.cs
- FileSystemEnumerable.cs
- ClientSettingsStore.cs
- HtmlContainerControl.cs
- AggregateNode.cs
- InputProcessorProfilesLoader.cs
- XmlNamespaceDeclarationsAttribute.cs
- HitTestWithGeometryDrawingContextWalker.cs
- _Connection.cs
- BinaryFormatterSinks.cs
- EntityDataSourceWizardForm.cs
- AnnotationElement.cs
- HtmlInputHidden.cs
- SizeIndependentAnimationStorage.cs
- AudioSignalProblemOccurredEventArgs.cs
- ConnectionStringsExpressionBuilder.cs
- embossbitmapeffect.cs
- ElementUtil.cs
- ELinqQueryState.cs
- NameValuePermission.cs
- hresults.cs
- WebPartDisplayMode.cs
- PreviousTrackingServiceAttribute.cs
- AppDomainProtocolHandler.cs
- HMACSHA1.cs
- DataGridViewAutoSizeModeEventArgs.cs
- Misc.cs
- SQLInt32Storage.cs
- BasicExpandProvider.cs
- ClientSettingsStore.cs
- XmlNotation.cs
- BulletDecorator.cs
- TranslateTransform.cs
- DetailsView.cs
- ObjectSpanRewriter.cs
- SignedXml.cs
- BaseCollection.cs
- TableCell.cs
- CodeVariableReferenceExpression.cs
- TextDecoration.cs
- ScopeElementCollection.cs
- EnterpriseServicesHelper.cs
- CellTreeNodeVisitors.cs
- MimeObjectFactory.cs
- NamespaceEmitter.cs
- TraceRecord.cs
- MobileRedirect.cs
- ThreadSafeList.cs
- BitStream.cs
- ExpressionBuilderContext.cs
- InputBuffer.cs
- ModelUIElement3D.cs
- InstanceDescriptor.cs
- MetadataSection.cs
- Math.cs
- PropertyCondition.cs
- CalculatedColumn.cs
- DebugHandleTracker.cs
- ZipArchive.cs
- WindowsGrip.cs
- ButtonPopupAdapter.cs
- CacheMode.cs
- HttpRequestTraceRecord.cs
- QilPatternFactory.cs
- DependencyPropertyChangedEventArgs.cs
- CloudCollection.cs
- InputScopeManager.cs
- FormsIdentity.cs