Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Expressions / LambdaValue.cs / 1305376 / LambdaValue.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities.Expressions { using System; using System.Activities.ExpressionParser; using System.Activities.XamlIntegration; using System.Collections.Generic; using System.Linq.Expressions; using System.Runtime; using System.Windows.Markup; // consciously not XAML-friendly since Linq Expressions aren't create-set-use [Fx.Tag.XamlVisible(false)] public sealed class LambdaValue: CodeActivity , IExpressionContainer, IValueSerializableExpression { Func compiledLambdaValue; Expression > lambdaValue; Expression > rewrittenTree; public LambdaValue(Expression > lambdaValue) { Fx.Assert(lambdaValue != null, "valueExpression should not be null"); this.lambdaValue = lambdaValue; this.SkipArgumentResolution = true; } Expression IExpressionContainer.Expression { get { return this.lambdaValue; } } protected override void CacheMetadata(CodeActivityMetadata metadata) { // We need to rewrite the tree. Expression newTree; if (ExpressionUtilities.TryRewriteLambdaExpression(this.lambdaValue, out newTree, metadata)) { this.rewrittenTree = (Expression >)newTree; } else { this.rewrittenTree = this.lambdaValue; } } internal override bool TryGetValue(ActivityContext context, out TResult value) { if (this.compiledLambdaValue == null) { this.compiledLambdaValue = this.rewrittenTree.Compile(); } value = this.compiledLambdaValue(context); return true; } protected override TResult Execute(CodeActivityContext context) { return ExecuteWithTryGetValue(context); } public bool CanConvertToString(IValueSerializerContext context) { return true; } public string ConvertToString(IValueSerializerContext context) { // This workflow contains lambda expressions specified in code. // These expressions are not XAML serializable. // In order to make your workflow XAML-serializable, // use either VisualBasicValue/Reference or ExpressionServices.Convert // This will convert your lambda expressions into expression activities. throw FxTrace.Exception.AsError(new LambdaSerializationException()); } } } // 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
- Duration.cs
- MessageSecurityException.cs
- ToolStripControlHost.cs
- WpfXamlMember.cs
- SvcMapFileSerializer.cs
- PositiveTimeSpanValidatorAttribute.cs
- DragCompletedEventArgs.cs
- infer.cs
- XmlSchemaComplexContentExtension.cs
- CatalogPart.cs
- WebAdminConfigurationHelper.cs
- OLEDB_Util.cs
- DeleteIndexBinder.cs
- StylusPointCollection.cs
- EDesignUtil.cs
- ListQueryResults.cs
- ColorTransformHelper.cs
- XMLSyntaxException.cs
- XamlFigureLengthSerializer.cs
- StackOverflowException.cs
- ContractType.cs
- Root.cs
- UnaryOperationBinder.cs
- DataBinding.cs
- ThemeableAttribute.cs
- PageAsyncTask.cs
- AnnotationAuthorChangedEventArgs.cs
- SoapReflectionImporter.cs
- MsmqIntegrationBindingCollectionElement.cs
- DtdParser.cs
- DataGridViewButtonColumn.cs
- DateTimeOffset.cs
- HostUtils.cs
- Rotation3D.cs
- IDReferencePropertyAttribute.cs
- ChineseLunisolarCalendar.cs
- DrawingGroup.cs
- ClientUrlResolverWrapper.cs
- SendMailErrorEventArgs.cs
- InputLanguageProfileNotifySink.cs
- ImportOptions.cs
- EntityDataSourceSelectedEventArgs.cs
- Operator.cs
- VisualBrush.cs
- StreamProxy.cs
- NamespaceInfo.cs
- Rule.cs
- StorageMappingFragment.cs
- XmlCompatibilityReader.cs
- UserValidatedEventArgs.cs
- ResourcesChangeInfo.cs
- CompilerTypeWithParams.cs
- WeakHashtable.cs
- EmbeddedMailObject.cs
- StorageFunctionMapping.cs
- InlineUIContainer.cs
- SystemIcons.cs
- PeerObject.cs
- PerspectiveCamera.cs
- WorkflowView.cs
- CompoundFileReference.cs
- TimeSpanFormat.cs
- _ContextAwareResult.cs
- AutomationTextAttribute.cs
- Operator.cs
- InnerItemCollectionView.cs
- PieceNameHelper.cs
- StrokeRenderer.cs
- TextSerializer.cs
- PartialArray.cs
- XmlSchemaAny.cs
- EpmTargetTree.cs
- ResourceWriter.cs
- SerializationEventsCache.cs
- MessageHeaderDescription.cs
- ObfuscationAttribute.cs
- UserPreferenceChangingEventArgs.cs
- DataGridTableCollection.cs
- ISAPIApplicationHost.cs
- NotFiniteNumberException.cs
- BidPrivateBase.cs
- ReferenceTypeElement.cs
- UnmanagedMemoryStreamWrapper.cs
- EdmScalarPropertyAttribute.cs
- ParallelTimeline.cs
- ExpressionBuilder.cs
- ExplicitDiscriminatorMap.cs
- ResourcePool.cs
- PhysicalOps.cs
- ProgressBarRenderer.cs
- CompositeTypefaceMetrics.cs
- ComPlusAuthorization.cs
- StylusPointProperty.cs
- HtmlPhoneCallAdapter.cs
- ReservationCollection.cs
- ProfilePropertyNameValidator.cs
- InstanceOwnerQueryResult.cs
- VersionValidator.cs
- SelectionPattern.cs
- WSHttpBindingCollectionElement.cs