Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / Microsoft / VisualBasic / Activities / VisualBasicReference.cs / 1305376 / VisualBasicReference.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace Microsoft.VisualBasic.Activities { using System; using System.Activities; using System.Activities.ExpressionParser; using System.Activities.XamlIntegration; using System.Linq.Expressions; using System.Windows.Markup; public sealed class VisualBasicReference: CodeActivity >, IValueSerializableExpression, IExpressionContainer, IVisualBasicExpression { Expression > expressionTree; LocationFactory locationFactory; public VisualBasicReference() : base() { this.SkipArgumentResolution = true; } public VisualBasicReference(string expressionText) : this() { this.ExpressionText = expressionText; } public string ExpressionText { get; set; } Expression IExpressionContainer.Expression { get { return this.expressionTree; } } protected override Location Execute(CodeActivityContext context) { if (this.expressionTree != null) { return GetValueCore(context); } else { return null; } } internal override bool TryGetValue(ActivityContext context, out Location value) { if (!this.SkipArgumentResolution && this.RuntimeArguments.Count > 1) { // We can't fast path because we have arguments other than the result // and we haven't obtained inlined references value = null; return false; } value = GetValueCore(context); return true; } Location GetValueCore(ActivityContext context) { if (this.locationFactory == null) { this.locationFactory = ExpressionUtilities.CreateLocationFactory (this.expressionTree); } return this.locationFactory.CreateLocation(context); } protected override void CacheMetadata(CodeActivityMetadata metadata) { this.expressionTree = null; try { this.expressionTree = VisualBasicHelper.Compile (this.ExpressionText, metadata); // inspect the expressionTree to see if it is a valid location expression(L-value) string extraErrorMessage = null; if (!metadata.HasViolations && (this.expressionTree == null || !ExpressionUtilities.IsLocation(this.expressionTree, typeof(TResult), out extraErrorMessage))) { string errorMessage = SR.InvalidLValueExpression; if (extraErrorMessage != null) { errorMessage += ":" + extraErrorMessage; } this.expressionTree = null; metadata.AddValidationError(SR.CompilerErrorSpecificExpression(this.ExpressionText, errorMessage)); } } catch (SourceExpressionException e) { metadata.AddValidationError(e.Message); } } public bool CanConvertToString(IValueSerializerContext context) { // we can always convert to a string return true; } public string ConvertToString(IValueSerializerContext context) { // Return our bracket-escaped text return "[" + this.ExpressionText + "]"; } } } // 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
- XPathDocument.cs
- TextRunProperties.cs
- MetadataItemEmitter.cs
- BackgroundFormatInfo.cs
- ContentElementAutomationPeer.cs
- IdentityReference.cs
- XmlSchemaAnnotated.cs
- WarningException.cs
- TabControl.cs
- DataSourceHelper.cs
- WindowsAuthenticationEventArgs.cs
- ContainerActivationHelper.cs
- CustomLineCap.cs
- TimeoutTimer.cs
- DynamicDocumentPaginator.cs
- ToolStripDropDownClosedEventArgs.cs
- OutputCacheProfile.cs
- DictionaryManager.cs
- DataGridViewButtonCell.cs
- CompositionDesigner.cs
- basemetadatamappingvisitor.cs
- TextContainerHelper.cs
- ObjRef.cs
- GAC.cs
- IDReferencePropertyAttribute.cs
- WebPermission.cs
- MsmqProcessProtocolHandler.cs
- ByeMessageApril2005.cs
- DBDataPermissionAttribute.cs
- BeginEvent.cs
- RectAnimationBase.cs
- AttachedPropertyInfo.cs
- ListViewInsertionMark.cs
- ListControl.cs
- ScrollChrome.cs
- MethodCallTranslator.cs
- Documentation.cs
- Size3D.cs
- XmlNamespaceMappingCollection.cs
- BitmapDownload.cs
- TextPointer.cs
- ControlSerializer.cs
- InputMethod.cs
- SerializerDescriptor.cs
- CommonGetThemePartSize.cs
- ReverseInheritProperty.cs
- RangeBase.cs
- XmlTextEncoder.cs
- ErrorWrapper.cs
- DrawingVisualDrawingContext.cs
- PropertyInfoSet.cs
- TemplatePartAttribute.cs
- SchemaTableOptionalColumn.cs
- Automation.cs
- ForeignConstraint.cs
- SettingsAttributes.cs
- NavigateEvent.cs
- TypedReference.cs
- TreeIterators.cs
- FieldMetadata.cs
- EmptyStringExpandableObjectConverter.cs
- PeerApplication.cs
- ToolStripItemTextRenderEventArgs.cs
- TreeNodeCollection.cs
- MetadataArtifactLoader.cs
- PackageProperties.cs
- ParameterCollectionEditor.cs
- HyperLinkDataBindingHandler.cs
- sqlmetadatafactory.cs
- NativeBuffer.cs
- ObjectItemConventionAssemblyLoader.cs
- ButtonChrome.cs
- Panel.cs
- CacheSection.cs
- XPathQueryGenerator.cs
- PermissionSetEnumerator.cs
- DescriptionAttribute.cs
- Utils.cs
- HostedBindingBehavior.cs
- GridViewAutoFormat.cs
- PerformanceCounterManager.cs
- WebPartMovingEventArgs.cs
- QuestionEventArgs.cs
- Configuration.cs
- QuaternionRotation3D.cs
- _UriSyntax.cs
- BindingContext.cs
- MarkupWriter.cs
- ObjectItemCollection.cs
- NetworkInformationException.cs
- TypeGeneratedEventArgs.cs
- Calendar.cs
- BoundField.cs
- MsmqHostedTransportConfiguration.cs
- ShutDownListener.cs
- cache.cs
- XmlSchemaDocumentation.cs
- LinkClickEvent.cs
- ConstraintManager.cs
- DataServicePagingProviderWrapper.cs