Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Statements / Switch.cs / 1305376 / Switch.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities.Statements { using System; using System.Activities; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq.Expressions; using System.Windows.Markup; using System.Runtime; [ContentProperty("Cases")] public sealed class Switch: NativeActivity { IDictionary cases; public Switch() { } public Switch(Expression > expression) : this() { if (expression == null) { throw FxTrace.Exception.ArgumentNull("expression"); } this.Expression = new InArgument (expression); } public Switch(Activity expression) : this() { if (expression == null) { throw FxTrace.Exception.ArgumentNull("expression"); } this.Expression = new InArgument (expression); } public Switch(InArgument expression) : this() { if (expression == null) { throw FxTrace.Exception.ArgumentNull("expression"); } this.Expression = expression; } [RequiredArgument] [DefaultValue(null)] public InArgument Expression { get; set; } public IDictionary Cases { get { if (this.cases == null) { this.cases = new CasesDictionary (); } return this.cases; } } [DefaultValue(null)] public Activity Default { get; set; } protected override void CacheMetadata(NativeActivityMetadata metadata) { RuntimeArgument expressionArgument = new RuntimeArgument("Expression", typeof(T), ArgumentDirection.In, true); metadata.Bind(Expression, expressionArgument); metadata.SetArgumentsCollection(new Collection { expressionArgument }); Collection children = new Collection (); foreach (Activity child in Cases.Values) { children.Add(child); } if (Default != null) { children.Add(Default); } metadata.SetChildrenCollection(children); } protected override void Execute(NativeActivityContext context) { T result = Expression.Get(context); Activity selection = null; if (!Cases.TryGetValue(result, out selection)) { if (this.Default != null) { selection = this.Default; } else { if (TD.SwitchCaseNotFoundIsEnabled()) { TD.SwitchCaseNotFound(this.DisplayName); } } } if (selection != null) { context.ScheduleActivity(selection); } } } } // 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
- AttributeEmitter.cs
- DataGridHelper.cs
- CorrelationManager.cs
- ThicknessAnimation.cs
- ExpressionVisitor.cs
- Light.cs
- TrustLevel.cs
- OdbcFactory.cs
- ADConnectionHelper.cs
- ItemsChangedEventArgs.cs
- SafeFileMapViewHandle.cs
- SeverityFilter.cs
- MouseGestureValueSerializer.cs
- SettingsSavedEventArgs.cs
- LayoutEvent.cs
- GridViewPageEventArgs.cs
- ScriptDescriptor.cs
- RegexFCD.cs
- XsltArgumentList.cs
- RepeatInfo.cs
- MDIControlStrip.cs
- Point3DAnimation.cs
- AsymmetricAlgorithm.cs
- TableParagraph.cs
- DefaultSection.cs
- ObjectListCommandCollection.cs
- EntitySqlQueryCacheKey.cs
- BitmapEffectRenderDataResource.cs
- MimeBasePart.cs
- path.cs
- SrgsText.cs
- SortQueryOperator.cs
- SqlNotificationRequest.cs
- GridViewCancelEditEventArgs.cs
- HierarchicalDataSourceControl.cs
- OrCondition.cs
- LinkUtilities.cs
- ResourceAssociationTypeEnd.cs
- ParameterCollection.cs
- DataGridClipboardCellContent.cs
- documentsequencetextpointer.cs
- VectorAnimationUsingKeyFrames.cs
- UrlMappingsSection.cs
- XmlUrlResolver.cs
- GenericsInstances.cs
- ClaimComparer.cs
- ToolStripItemRenderEventArgs.cs
- WizardPanelChangingEventArgs.cs
- ReadOnlyHierarchicalDataSourceView.cs
- DurationConverter.cs
- SmtpReplyReaderFactory.cs
- RelatedImageListAttribute.cs
- TypeSystem.cs
- ResourceDescriptionAttribute.cs
- GraphicsContext.cs
- WebPartMinimizeVerb.cs
- BaseEntityWrapper.cs
- Permission.cs
- _OSSOCK.cs
- DataGridViewColumnTypeEditor.cs
- XmlSchemaValidationException.cs
- ExpressionNormalizer.cs
- Oid.cs
- XsltLoader.cs
- MemoryStream.cs
- BaseParser.cs
- SimpleApplicationHost.cs
- FixedFindEngine.cs
- ClientScriptManagerWrapper.cs
- ThreadStartException.cs
- COAUTHIDENTITY.cs
- PreDigestedSignedInfo.cs
- ViewPort3D.cs
- SiteMapPath.cs
- XmlHierarchicalEnumerable.cs
- KeyboardEventArgs.cs
- HttpStreamMessageEncoderFactory.cs
- InlinedLocationReference.cs
- WindowsScrollBarBits.cs
- LicenseContext.cs
- AssemblyBuilderData.cs
- SiteMapNode.cs
- WpfGeneratedKnownTypes.cs
- ProfileService.cs
- WindowsTooltip.cs
- InputScopeAttribute.cs
- ToolStripItemClickedEventArgs.cs
- AddInActivator.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- IpcServerChannel.cs
- SqlVisitor.cs
- BitSet.cs
- ReversePositionQuery.cs
- SkinBuilder.cs
- ArglessEventHandlerProxy.cs
- Propagator.ExtentPlaceholderCreator.cs
- NumberFormatter.cs
- XmlBinaryWriter.cs
- XmlDictionaryString.cs
- MILUtilities.cs