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
- RegistryKey.cs
- XPathNodeInfoAtom.cs
- OpenTypeCommon.cs
- ChannelSinkStacks.cs
- MembershipUser.cs
- DataGridRelationshipRow.cs
- WebPartUtil.cs
- MemberMemberBinding.cs
- FileSystemEventArgs.cs
- SQLDouble.cs
- FilteredAttributeCollection.cs
- KeyValueSerializer.cs
- WindowsFormsHost.cs
- SmtpTransport.cs
- IConvertible.cs
- SchemaDeclBase.cs
- dbdatarecord.cs
- ContentOperations.cs
- ExclusiveCanonicalizationTransform.cs
- ContentControl.cs
- FileDialogPermission.cs
- CqlParserHelpers.cs
- FontSource.cs
- IPHostEntry.cs
- Rectangle.cs
- BitmapEffectGroup.cs
- PageContentCollection.cs
- Icon.cs
- DisposableCollectionWrapper.cs
- TextSchema.cs
- RegexFCD.cs
- BooleanConverter.cs
- ProgressChangedEventArgs.cs
- HttpResponseInternalWrapper.cs
- SqlTopReducer.cs
- SqlFlattener.cs
- FolderBrowserDialog.cs
- TemplateBindingExpression.cs
- XamlStyleSerializer.cs
- WebPartTransformerCollection.cs
- TextElementEnumerator.cs
- OrderByQueryOptionExpression.cs
- Bold.cs
- MarkupCompilePass1.cs
- LocationReferenceEnvironment.cs
- DockAndAnchorLayout.cs
- Lasso.cs
- CngUIPolicy.cs
- VerificationException.cs
- UTF32Encoding.cs
- CustomLineCap.cs
- Journal.cs
- ToolStripDesignerUtils.cs
- BuilderPropertyEntry.cs
- SparseMemoryStream.cs
- ServiceDiscoveryElement.cs
- shaper.cs
- MethodBody.cs
- MinimizableAttributeTypeConverter.cs
- CroppedBitmap.cs
- SystemIcmpV6Statistics.cs
- MetaType.cs
- externdll.cs
- InfoCardSymmetricAlgorithm.cs
- DataGridPageChangedEventArgs.cs
- TemplateXamlTreeBuilder.cs
- Context.cs
- FileReservationCollection.cs
- PropertyChangingEventArgs.cs
- CreateParams.cs
- SchemaSetCompiler.cs
- WebBodyFormatMessageProperty.cs
- FlowLayoutSettings.cs
- GradientSpreadMethodValidation.cs
- CompilerCollection.cs
- Single.cs
- XmlUtf8RawTextWriter.cs
- SqlRetyper.cs
- StorageEntityContainerMapping.cs
- ComplexTypeEmitter.cs
- PasswordBox.cs
- UriSectionData.cs
- KerberosReceiverSecurityToken.cs
- MaterialGroup.cs
- ValidatingReaderNodeData.cs
- SqlFactory.cs
- Root.cs
- GlyphsSerializer.cs
- DirectoryNotFoundException.cs
- BindingsCollection.cs
- AllMembershipCondition.cs
- DataGridBoundColumn.cs
- MediaEntryAttribute.cs
- DeflateStream.cs
- PasswordRecoveryDesigner.cs
- Touch.cs
- RuntimeVariableList.cs
- WindowsAuthenticationModule.cs
- TextServicesCompartment.cs
- InputDevice.cs