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
- TreeNodeBindingCollection.cs
- ExportOptions.cs
- Content.cs
- DataGridViewButtonColumn.cs
- TextRange.cs
- TextTreeTextElementNode.cs
- DataGridViewComboBoxEditingControl.cs
- ArgumentDesigner.xaml.cs
- EpmCustomContentDeSerializer.cs
- EntityContainerRelationshipSetEnd.cs
- SliderAutomationPeer.cs
- DataBoundControlParameterTarget.cs
- SafeNativeMethods.cs
- LinqDataSourceValidationException.cs
- ObjectDataProvider.cs
- MetadataHelper.cs
- IDQuery.cs
- ComponentEditorPage.cs
- control.ime.cs
- SchemeSettingElementCollection.cs
- ReservationCollection.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- PolyQuadraticBezierSegment.cs
- HtmlHead.cs
- BitmapEncoder.cs
- SQLBoolean.cs
- ComponentManagerBroker.cs
- PrimitiveType.cs
- CodeVariableReferenceExpression.cs
- HttpFileCollectionWrapper.cs
- AppDomain.cs
- X500Name.cs
- ByeMessageCD1.cs
- SimpleTypeResolver.cs
- ContentPresenter.cs
- InvokeMethod.cs
- TransactionProtocol.cs
- RepeaterDataBoundAdapter.cs
- Contracts.cs
- PixelShader.cs
- JavaScriptSerializer.cs
- SqlXmlStorage.cs
- SmtpTransport.cs
- ManualResetEvent.cs
- BinaryObjectReader.cs
- SqlHelper.cs
- recordstatefactory.cs
- LocalizationComments.cs
- DataReceivedEventArgs.cs
- XamlTreeBuilder.cs
- HandlerFactoryCache.cs
- CaseInsensitiveHashCodeProvider.cs
- ReadOnlyCollectionBuilder.cs
- Propagator.JoinPropagator.cs
- Compiler.cs
- EndPoint.cs
- SoapAttributeAttribute.cs
- CanonicalFormWriter.cs
- Deflater.cs
- Array.cs
- DataExpression.cs
- SemaphoreSecurity.cs
- OdbcDataReader.cs
- DbConnectionClosed.cs
- OracleException.cs
- PreservationFileReader.cs
- FrameworkContentElement.cs
- BaseServiceProvider.cs
- DataGridViewTextBoxEditingControl.cs
- cookieexception.cs
- SerializationFieldInfo.cs
- AsnEncodedData.cs
- ParameterBuilder.cs
- WebEventTraceProvider.cs
- DbDataAdapter.cs
- DbMetaDataColumnNames.cs
- PathFigureCollection.cs
- TextModifier.cs
- InputLangChangeRequestEvent.cs
- SQLChars.cs
- RowToFieldTransformer.cs
- SafeFileMappingHandle.cs
- ImageButton.cs
- shaper.cs
- XmlCompatibilityReader.cs
- RewritingPass.cs
- EntityClassGenerator.cs
- DataColumnCollection.cs
- AnnotationMap.cs
- ProfileModule.cs
- NextPreviousPagerField.cs
- SecurityTimestamp.cs
- TransportElement.cs
- Win32.cs
- EventHandlerList.cs
- ColorDialog.cs
- __ConsoleStream.cs
- IdentitySection.cs
- ShaderEffect.cs
- ListMarkerSourceInfo.cs