Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Expressions / As.cs / 1305376 / As.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Expressions { using System.Activities; using System.Activities.Statements; using System.Activities.Validation; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics.CodeAnalysis; using System.Linq.Expressions; using System.Runtime; [SuppressMessage(FxCop.Category.Naming, FxCop.Rule.IdentifiersShouldNotMatchKeywords, Justification = "Optimizing for XAML naming. VB imperative users will [] qualify (e.g. New [As])")] public sealed class As: CodeActivity { //Lock is not needed for operationFunction here. The reason is that delegates for a given As are the same. //It's possible that 2 threads are assigning the operationFucntion at the same time. But it's okay because the compiled codes are the same. static Func operationFunction; [RequiredArgument] [DefaultValue(null)] public InArgument Operand { get; set; } protected override void CacheMetadata(CodeActivityMetadata metadata) { UnaryExpressionHelper.OnGetArguments(metadata, this.Operand); if (operationFunction == null) { ValidationError validationError; if (!UnaryExpressionHelper.TryGenerateLinqDelegate(ExpressionType.TypeAs, out operationFunction, out validationError)) { metadata.AddValidationError(validationError); } } } protected override TResult Execute(CodeActivityContext context) { Fx.Assert(operationFunction != null, "OperationFunction must exist."); TOperand operandValue = this.Operand.Get(context); return operationFunction(operandValue); } } } // 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
- _ListenerAsyncResult.cs
- XappLauncher.cs
- RegexFCD.cs
- StringUtil.cs
- initElementDictionary.cs
- DataGridCellEditEndingEventArgs.cs
- ExternalCalls.cs
- ListSortDescriptionCollection.cs
- TcpActivation.cs
- ChangeBlockUndoRecord.cs
- FullTextBreakpoint.cs
- ListView.cs
- SessionIDManager.cs
- LogReservationCollection.cs
- EventPrivateKey.cs
- EntityTemplateUserControl.cs
- Quaternion.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- SelectionHighlightInfo.cs
- HierarchicalDataBoundControl.cs
- WorkflowRuntimeServiceElementCollection.cs
- HoistedLocals.cs
- DBConcurrencyException.cs
- TextEditorCopyPaste.cs
- ResourceDescriptionAttribute.cs
- TargetControlTypeCache.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- ColumnWidthChangedEvent.cs
- AddInSegmentDirectoryNotFoundException.cs
- SetterBaseCollection.cs
- PageParserFilter.cs
- CheckPair.cs
- TreeNodeCollection.cs
- Permission.cs
- Vector3D.cs
- EntityDataSourceDesignerHelper.cs
- CodeMemberField.cs
- WindowsPrincipal.cs
- FieldBuilder.cs
- DesignConnection.cs
- UnauthorizedWebPart.cs
- CustomSignedXml.cs
- XpsInterleavingPolicy.cs
- ScopedKnownTypes.cs
- ClientScriptManager.cs
- DataSource.cs
- XmlBinaryReaderSession.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- MappableObjectManager.cs
- DataSpaceManager.cs
- Separator.cs
- ChildrenQuery.cs
- Add.cs
- RequiredAttributeAttribute.cs
- ThemeDirectoryCompiler.cs
- DeleteHelper.cs
- SQLRoleProvider.cs
- StylusEditingBehavior.cs
- AppearanceEditorPart.cs
- EmbossBitmapEffect.cs
- InkCanvasSelection.cs
- FileChangesMonitor.cs
- RootNamespaceAttribute.cs
- Knowncolors.cs
- LogicalExpr.cs
- StringOutput.cs
- ColumnTypeConverter.cs
- IPPacketInformation.cs
- ProcessHostServerConfig.cs
- PingOptions.cs
- GraphicsPath.cs
- DataGridColumnsPage.cs
- EntityClassGenerator.cs
- ConfigXmlCDataSection.cs
- ByteStream.cs
- AuthenticationServiceManager.cs
- SQLDecimalStorage.cs
- SafeTimerHandle.cs
- Char.cs
- UpdateException.cs
- RelationshipFixer.cs
- PopupEventArgs.cs
- EdmError.cs
- CapacityStreamGeometryContext.cs
- ProcessMonitor.cs
- ToolStripRenderEventArgs.cs
- BooleanStorage.cs
- StretchValidation.cs
- InstalledFontCollection.cs
- CodeSubDirectoriesCollection.cs
- CompiledQueryCacheEntry.cs
- HyperLinkStyle.cs
- ToolboxItem.cs
- Single.cs
- ListControlDesigner.cs
- PaintEvent.cs
- BatchStream.cs
- OracleSqlParser.cs
- ExpressionBindingCollection.cs
- DesigntimeLicenseContextSerializer.cs