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
- TreeViewCancelEvent.cs
- MutexSecurity.cs
- InheritablePropertyChangeInfo.cs
- FontFamily.cs
- AssemblyBuilder.cs
- TaskCanceledException.cs
- Calendar.cs
- MachineSettingsSection.cs
- ScrollItemPattern.cs
- ReadOnlyNameValueCollection.cs
- SchemeSettingElementCollection.cs
- StringBuilder.cs
- DialogResultConverter.cs
- DatagridviewDisplayedBandsData.cs
- DynamicRendererThreadManager.cs
- WebBrowserNavigatingEventHandler.cs
- ReaderContextStackData.cs
- MenuAutoFormat.cs
- SystemIcons.cs
- StdValidatorsAndConverters.cs
- oledbconnectionstring.cs
- Constraint.cs
- ModelPerspective.cs
- GridViewCancelEditEventArgs.cs
- SQLDoubleStorage.cs
- WebHttpBehavior.cs
- TextContainerChangeEventArgs.cs
- XamlRtfConverter.cs
- controlskin.cs
- PrintPreviewDialog.cs
- CachedTypeface.cs
- SubtreeProcessor.cs
- KeySplineConverter.cs
- ElementUtil.cs
- GeneralTransform3DTo2DTo3D.cs
- ShapingEngine.cs
- XmlSerializationReader.cs
- MetadataResolver.cs
- OdbcDataAdapter.cs
- FragmentQuery.cs
- XmlReaderDelegator.cs
- MetadataArtifactLoaderComposite.cs
- ApplicationCommands.cs
- RootBrowserWindowAutomationPeer.cs
- CompleteWizardStep.cs
- NodeLabelEditEvent.cs
- IPGlobalProperties.cs
- DictionaryEntry.cs
- KeyGesture.cs
- URLAttribute.cs
- Int32RectValueSerializer.cs
- CommunicationObject.cs
- DeploymentExceptionMapper.cs
- WorkflowInstanceExtensionManager.cs
- PermissionRequestEvidence.cs
- RunWorkerCompletedEventArgs.cs
- IODescriptionAttribute.cs
- AutomationFocusChangedEventArgs.cs
- CodeArrayIndexerExpression.cs
- HtmlProps.cs
- FixedBufferAttribute.cs
- TextSegment.cs
- SspiHelper.cs
- XpsFixedPageReaderWriter.cs
- QueryOperator.cs
- Transactions.cs
- AbandonedMutexException.cs
- MessageSecurityOverMsmq.cs
- TextEvent.cs
- KerberosSecurityTokenProvider.cs
- SimpleColumnProvider.cs
- SingleKeyFrameCollection.cs
- WindowsHyperlink.cs
- CompoundFileIOPermission.cs
- CredentialCache.cs
- CacheAxisQuery.cs
- ValidateNames.cs
- DataViewManager.cs
- EllipseGeometry.cs
- BuildProviderUtils.cs
- dbenumerator.cs
- SqlCacheDependencyDatabase.cs
- LinqDataSourceSelectEventArgs.cs
- TreeWalker.cs
- DbProviderManifest.cs
- DataBoundControlAdapter.cs
- FigureHelper.cs
- storepermission.cs
- RecognizerBase.cs
- HMACSHA1.cs
- SamlSerializer.cs
- BasicKeyConstraint.cs
- LinkedList.cs
- ContourSegment.cs
- RequestQueue.cs
- Rijndael.cs
- CultureData.cs
- __ComObject.cs
- MobileCapabilities.cs
- OdbcInfoMessageEvent.cs