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
- DesignTimeParseData.cs
- Point3DCollectionValueSerializer.cs
- FamilyMapCollection.cs
- XmlDataProvider.cs
- CollectionBuilder.cs
- UidManager.cs
- RijndaelCryptoServiceProvider.cs
- KeyEventArgs.cs
- Propagator.ExtentPlaceholderCreator.cs
- WsiProfilesElementCollection.cs
- ScriptControlDescriptor.cs
- KeyValueConfigurationElement.cs
- DbProviderServices.cs
- FixedDocument.cs
- ToolboxComponentsCreatedEventArgs.cs
- ObjectDataSourceMethodEventArgs.cs
- BasicCellRelation.cs
- WinEventHandler.cs
- HasCopySemanticsAttribute.cs
- MemberPathMap.cs
- ResponseBodyWriter.cs
- HtmlObjectListAdapter.cs
- ReadOnlyHierarchicalDataSourceView.cs
- EncryptedData.cs
- HierarchicalDataSourceControl.cs
- ExtentCqlBlock.cs
- ThreadStaticAttribute.cs
- DataServiceClientException.cs
- Tile.cs
- FixedDocumentPaginator.cs
- StackOverflowException.cs
- Action.cs
- TextInfo.cs
- WebPartEventArgs.cs
- SortAction.cs
- X509Extension.cs
- TypographyProperties.cs
- Misc.cs
- CustomValidator.cs
- ValidatorCollection.cs
- SQLBoolean.cs
- IsolationInterop.cs
- MeasureItemEvent.cs
- XmlDocumentType.cs
- AutomationPropertyChangedEventArgs.cs
- SingleSelectRootGridEntry.cs
- MasterPageParser.cs
- ProtocolsSection.cs
- UserControl.cs
- SelectionHighlightInfo.cs
- XPathMessageFilterTable.cs
- SqlTypeConverter.cs
- IItemProperties.cs
- TypeForwardedToAttribute.cs
- AutoScrollExpandMessageFilter.cs
- ObjectCacheHost.cs
- FontFamilyValueSerializer.cs
- Converter.cs
- TableRow.cs
- WorkflowPersistenceService.cs
- SecurityTokenProvider.cs
- ObjectCloneHelper.cs
- WpfXamlMember.cs
- httpapplicationstate.cs
- ShaderEffect.cs
- HorizontalAlignConverter.cs
- ViewPort3D.cs
- DataGridViewAutoSizeModeEventArgs.cs
- DirectoryNotFoundException.cs
- ComponentCollection.cs
- AutomationPatternInfo.cs
- BaseComponentEditor.cs
- TreeNodeCollection.cs
- ElementProxy.cs
- BindingFormattingDialog.cs
- SerializationEventsCache.cs
- NotImplementedException.cs
- PolicyLevel.cs
- AdditionalEntityFunctions.cs
- GlyphRun.cs
- SecurityPolicySection.cs
- ManagementObjectSearcher.cs
- MatrixUtil.cs
- EventHandlersStore.cs
- ClientSettings.cs
- DataGridToolTip.cs
- ProbeDuplex11AsyncResult.cs
- HttpContext.cs
- AttributeAction.cs
- InputMethodStateChangeEventArgs.cs
- ObsoleteAttribute.cs
- BypassElementCollection.cs
- DateTimeConverter.cs
- TextBlock.cs
- TrackingMemoryStream.cs
- HttpPostedFile.cs
- input.cs
- PageThemeParser.cs
- PrintingPermission.cs
- DataViewManager.cs