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
- ListViewItem.cs
- ObfuscateAssemblyAttribute.cs
- NameValueConfigurationElement.cs
- ContentType.cs
- PrePrepareMethodAttribute.cs
- GPRECTF.cs
- TreeNodeConverter.cs
- CellTreeNode.cs
- nulltextnavigator.cs
- NamespaceExpr.cs
- IdentityHolder.cs
- CheckBox.cs
- XPathExpr.cs
- DomainUpDown.cs
- tooltip.cs
- ClientSponsor.cs
- CodeMethodInvokeExpression.cs
- InvariantComparer.cs
- ToolboxComponentsCreatingEventArgs.cs
- RowCache.cs
- TextElementEnumerator.cs
- ETagAttribute.cs
- GeneralTransformCollection.cs
- ProviderUtil.cs
- DialogBaseForm.cs
- ModelItemExtensions.cs
- RC2.cs
- CodeGroup.cs
- ActivationServices.cs
- AutomationAttributeInfo.cs
- ServiceElementCollection.cs
- ImplicitInputBrush.cs
- ToolStripStatusLabel.cs
- ChtmlMobileTextWriter.cs
- SkinBuilder.cs
- HtmlEmptyTagControlBuilder.cs
- QuaternionValueSerializer.cs
- TargetControlTypeCache.cs
- PinnedBufferMemoryStream.cs
- GenericRootAutomationPeer.cs
- TableItemPattern.cs
- CapabilitiesAssignment.cs
- XslTransform.cs
- PassportAuthenticationEventArgs.cs
- AppSettingsReader.cs
- TranslateTransform.cs
- SectionVisual.cs
- ComponentEditorPage.cs
- VersionPair.cs
- ViewCellSlot.cs
- IxmlLineInfo.cs
- SiteMapPath.cs
- PnrpPermission.cs
- BevelBitmapEffect.cs
- SspiSafeHandles.cs
- VerticalAlignConverter.cs
- SiteOfOriginContainer.cs
- OrderedHashRepartitionStream.cs
- PersonalizationStateInfo.cs
- BitmapEffectCollection.cs
- PolicyChain.cs
- XmlSchemaSimpleTypeRestriction.cs
- RuntimeResourceSet.cs
- Triplet.cs
- NavigatorOutput.cs
- PersonalizationDictionary.cs
- IssuedTokenServiceElement.cs
- WithParamAction.cs
- Label.cs
- AutomationPropertyChangedEventArgs.cs
- XmlUnspecifiedAttribute.cs
- propertytag.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- SmiMetaData.cs
- IndicFontClient.cs
- ActivityExecutionContext.cs
- DrawingContextWalker.cs
- MailAddress.cs
- Adorner.cs
- Dynamic.cs
- AllMembershipCondition.cs
- ReadOnlyDictionary.cs
- StylusTip.cs
- AssemblySettingAttributes.cs
- GPPOINT.cs
- EventWaitHandle.cs
- ProxyManager.cs
- DataGridItem.cs
- Version.cs
- TextCompositionManager.cs
- Domain.cs
- ResourcePool.cs
- TransactionState.cs
- ResourceAssociationSetEnd.cs
- mediapermission.cs
- PenContext.cs
- BitmapEffectInputData.cs
- HtmlInputFile.cs
- XmlSchemaCollection.cs
- ToggleButtonAutomationPeer.cs