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
- SynchronizationLockException.cs
- DesignTimeParseData.cs
- PageThemeCodeDomTreeGenerator.cs
- ToggleButtonAutomationPeer.cs
- KerberosTicketHashIdentifierClause.cs
- SqlNotificationRequest.cs
- XmlCharCheckingWriter.cs
- SoapAttributeOverrides.cs
- MDIClient.cs
- ObjectNotFoundException.cs
- TreeBuilderXamlTranslator.cs
- DataListCommandEventArgs.cs
- XmlNamedNodeMap.cs
- DataIdProcessor.cs
- ArrayList.cs
- TypeToTreeConverter.cs
- BitSet.cs
- PermissionSetEnumerator.cs
- PageAction.cs
- ManagementObjectSearcher.cs
- COM2Enum.cs
- Wildcard.cs
- DbParameterHelper.cs
- ColorConverter.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- __Error.cs
- ISCIIEncoding.cs
- validation.cs
- OutOfProcStateClientManager.cs
- SQLChars.cs
- WebColorConverter.cs
- WorkflowInspectionServices.cs
- Array.cs
- Preprocessor.cs
- ISCIIEncoding.cs
- BaseParagraph.cs
- StructuredType.cs
- datacache.cs
- XamlReaderConstants.cs
- DefinitionBase.cs
- FormParameter.cs
- SourceElementsCollection.cs
- XdrBuilder.cs
- CancellationToken.cs
- DirectoryGroupQuery.cs
- SoapFormatter.cs
- CodeStatementCollection.cs
- X500Name.cs
- SqlCommand.cs
- XmlSchemaGroupRef.cs
- ActivityInstanceMap.cs
- Function.cs
- FlowStep.cs
- ImageListStreamer.cs
- ObjectTag.cs
- Type.cs
- TextEditorParagraphs.cs
- SimpleWorkerRequest.cs
- StickyNoteAnnotations.cs
- Tablet.cs
- SatelliteContractVersionAttribute.cs
- Error.cs
- GenerateHelper.cs
- Symbol.cs
- CrossAppDomainChannel.cs
- DictionaryContent.cs
- PreviewPrintController.cs
- ContentPlaceHolder.cs
- Stream.cs
- Storyboard.cs
- VerticalAlignConverter.cs
- WebControlsSection.cs
- ViewBase.cs
- LineServices.cs
- CachedPathData.cs
- AnimationTimeline.cs
- AccessDataSourceView.cs
- TdsParser.cs
- Lasso.cs
- Typeface.cs
- HtmlInputImage.cs
- SmiTypedGetterSetter.cs
- HtmlLink.cs
- WindowsGraphics2.cs
- RelationshipType.cs
- PreProcessInputEventArgs.cs
- NullNotAllowedCollection.cs
- ListenerAdapterBase.cs
- CacheDependency.cs
- RemotingServices.cs
- InkCanvasFeedbackAdorner.cs
- DataGridViewEditingControlShowingEventArgs.cs
- FamilyCollection.cs
- IOException.cs
- AdditionalEntityFunctions.cs
- CacheMemory.cs
- EdmProviderManifest.cs
- ThemeDictionaryExtension.cs
- MainMenu.cs
- FrameSecurityDescriptor.cs