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
- ActivityIdHeader.cs
- DataGridCell.cs
- ErrorBehavior.cs
- DockPanel.cs
- AsyncPostBackErrorEventArgs.cs
- Hyperlink.cs
- XmlChildEnumerator.cs
- HwndSource.cs
- ADMembershipProvider.cs
- MexHttpsBindingCollectionElement.cs
- RequestDescription.cs
- UnmanagedHandle.cs
- UnsafeNativeMethods.cs
- SQlBooleanStorage.cs
- FontClient.cs
- CryptoConfig.cs
- QilReplaceVisitor.cs
- CaseExpr.cs
- PictureBox.cs
- Binding.cs
- SQLDateTimeStorage.cs
- DbProviderSpecificTypePropertyAttribute.cs
- InputQueue.cs
- LogLogRecordHeader.cs
- NamespaceEmitter.cs
- NamespaceQuery.cs
- ServiceObjectContainer.cs
- BinaryMethodMessage.cs
- SortedDictionary.cs
- SslStream.cs
- sqlcontext.cs
- ErrorWrapper.cs
- RequiredAttributeAttribute.cs
- QueryResult.cs
- XmlSchemaImport.cs
- Queue.cs
- SiteMapHierarchicalDataSourceView.cs
- DrawingContextWalker.cs
- _NTAuthentication.cs
- WebBrowser.cs
- TransformConverter.cs
- ClientOperation.cs
- LicFileLicenseProvider.cs
- Triangle.cs
- DataServiceContext.cs
- ActiveXContainer.cs
- SessionIDManager.cs
- SerializerWriterEventHandlers.cs
- DiagnosticSection.cs
- Html32TextWriter.cs
- SequentialOutput.cs
- odbcmetadatacollectionnames.cs
- MetadataCache.cs
- XmlReader.cs
- BitVector32.cs
- WindowsTokenRoleProvider.cs
- __FastResourceComparer.cs
- DataGridViewTextBoxEditingControl.cs
- BitmapMetadataBlob.cs
- hebrewshape.cs
- PropertyEmitterBase.cs
- ReadWriteSpinLock.cs
- HelpKeywordAttribute.cs
- IisTraceListener.cs
- DomNameTable.cs
- XmlJsonWriter.cs
- PageHandlerFactory.cs
- WebPartsPersonalizationAuthorization.cs
- CodeAccessSecurityEngine.cs
- ThreadLocal.cs
- ProjectionPath.cs
- ConsoleKeyInfo.cs
- RegexFCD.cs
- ControlPropertyNameConverter.cs
- CommonProperties.cs
- OAVariantLib.cs
- PersonalizationEntry.cs
- XmlParserContext.cs
- SqlClientWrapperSmiStream.cs
- InvalidEnumArgumentException.cs
- SessionStateModule.cs
- WinEventTracker.cs
- WebPartMenuStyle.cs
- OrderedHashRepartitionStream.cs
- UInt64Converter.cs
- ConnectionInterfaceCollection.cs
- Run.cs
- ToolStripAdornerWindowService.cs
- OrderByQueryOptionExpression.cs
- PathData.cs
- ContactManager.cs
- CheckoutException.cs
- RoleManagerSection.cs
- WebServiceErrorEvent.cs
- EntityException.cs
- ExclusiveTcpListener.cs
- DataGridSortCommandEventArgs.cs
- CustomValidator.cs
- WebPartEditorOkVerb.cs
- TypedTableHandler.cs