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
- TextEditorLists.cs
- SafeSecurityHelper.cs
- ClrPerspective.cs
- PropertyGrid.cs
- AnimatedTypeHelpers.cs
- DataServiceBuildProvider.cs
- TreeWalkHelper.cs
- filewebresponse.cs
- OneOf.cs
- XmlProcessingInstruction.cs
- WindowsAltTab.cs
- DebugTrace.cs
- ServiceElementCollection.cs
- ResourceDictionary.cs
- XmlCollation.cs
- TagElement.cs
- PermissionSet.cs
- AssociationProvider.cs
- CompressEmulationStream.cs
- Utils.cs
- MemberJoinTreeNode.cs
- AnimationClockResource.cs
- PolyLineSegmentFigureLogic.cs
- MenuScrollingVisibilityConverter.cs
- BinaryConverter.cs
- ToolStripHighContrastRenderer.cs
- X509Certificate2Collection.cs
- CheckBoxStandardAdapter.cs
- CloudCollection.cs
- CommandDevice.cs
- GenericWebPart.cs
- DataBindingHandlerAttribute.cs
- StrokeNodeOperations.cs
- TypeDescriptor.cs
- LineMetrics.cs
- SEHException.cs
- BaseComponentEditor.cs
- AssemblyAttributesGoHere.cs
- BackStopAuthenticationModule.cs
- SchemaLookupTable.cs
- PrimarySelectionAdorner.cs
- UnsafeNativeMethods.cs
- CaseStatementSlot.cs
- DetailsViewCommandEventArgs.cs
- PropertiesTab.cs
- DataGridViewButtonColumn.cs
- Sequence.cs
- SqlComparer.cs
- LingerOption.cs
- SystemInformation.cs
- CommandField.cs
- BlobPersonalizationState.cs
- BrowsableAttribute.cs
- CacheForPrimitiveTypes.cs
- FormViewDeletedEventArgs.cs
- RectKeyFrameCollection.cs
- GeometryValueSerializer.cs
- XmlQueryCardinality.cs
- ChangePassword.cs
- Highlights.cs
- EdmError.cs
- OracleBFile.cs
- codemethodreferenceexpression.cs
- MetadataItemSerializer.cs
- EntityViewGenerationConstants.cs
- SemanticKeyElement.cs
- StorageMappingItemLoader.cs
- ReversePositionQuery.cs
- CultureInfoConverter.cs
- CrossContextChannel.cs
- TextPointer.cs
- ExpressionBuilderContext.cs
- DispatcherHooks.cs
- Pens.cs
- GACIdentityPermission.cs
- MissingSatelliteAssemblyException.cs
- Validator.cs
- TextViewSelectionProcessor.cs
- ContextItem.cs
- MergeExecutor.cs
- TableColumn.cs
- PropertyInformationCollection.cs
- XamlPathDataSerializer.cs
- DocumentApplicationJournalEntry.cs
- DataColumnCollection.cs
- Translator.cs
- Interfaces.cs
- VersionedStream.cs
- HebrewCalendar.cs
- SystemResourceHost.cs
- StringComparer.cs
- StringUtil.cs
- ViewPort3D.cs
- DSACryptoServiceProvider.cs
- StringExpressionSet.cs
- LinqDataSourceDisposeEventArgs.cs
- BaseValidatorDesigner.cs
- ShaderEffect.cs
- ConnectionManagementElementCollection.cs
- ImmutableCollection.cs