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
- ScrollableControlDesigner.cs
- GlyphTypeface.cs
- ToolStripControlHost.cs
- BoundsDrawingContextWalker.cs
- DatePickerAutomationPeer.cs
- LinqDataSourceDisposeEventArgs.cs
- FaultDesigner.cs
- CodeLabeledStatement.cs
- ConfigXmlDocument.cs
- CommandConverter.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- MissingFieldException.cs
- FilterElement.cs
- ColorContextHelper.cs
- EditingScope.cs
- EncoderParameter.cs
- IERequestCache.cs
- UpdatePanelTrigger.cs
- CollectionBuilder.cs
- BamlResourceSerializer.cs
- HighContrastHelper.cs
- UIPermission.cs
- ListBase.cs
- TemplateBindingExpressionConverter.cs
- RequestValidator.cs
- FullTextState.cs
- PowerEase.cs
- DesignerSelectionListAdapter.cs
- RelationshipEndMember.cs
- SynchronizedDispatch.cs
- ExtensionDataObject.cs
- WebConfigurationFileMap.cs
- UInt32.cs
- TemplatedMailWebEventProvider.cs
- CalendarItem.cs
- WebPartVerb.cs
- ProcessRequestArgs.cs
- Registry.cs
- HiddenField.cs
- DataGridViewRowsRemovedEventArgs.cs
- SinglePageViewer.cs
- Environment.cs
- Blend.cs
- TextEditorCopyPaste.cs
- BatchServiceHost.cs
- ControlCachePolicy.cs
- WindowCollection.cs
- AsyncDataRequest.cs
- TabItemAutomationPeer.cs
- WaitForChangedResult.cs
- HebrewCalendar.cs
- TrustSection.cs
- KeyInstance.cs
- CheckedPointers.cs
- GridViewDeleteEventArgs.cs
- OrthographicCamera.cs
- BrowserTree.cs
- Context.cs
- CornerRadius.cs
- HtmlCalendarAdapter.cs
- FindCriteriaElement.cs
- ManualResetEvent.cs
- WebBrowser.cs
- PerformanceCounterPermissionAttribute.cs
- MethodCallTranslator.cs
- columnmapfactory.cs
- RandomNumberGenerator.cs
- Logging.cs
- DWriteFactory.cs
- CollectionChangedEventManager.cs
- BitmapMetadataBlob.cs
- WizardForm.cs
- Activator.cs
- CmsInterop.cs
- Matrix3DConverter.cs
- InheritablePropertyChangeInfo.cs
- PermissionListSet.cs
- IProvider.cs
- WebBaseEventKeyComparer.cs
- VersionedStream.cs
- FormClosedEvent.cs
- FragmentQuery.cs
- HttpHandlerActionCollection.cs
- PasswordDeriveBytes.cs
- CheckedListBox.cs
- LocalValueEnumerator.cs
- EntityCollectionChangedParams.cs
- SecureUICommand.cs
- PointCollectionConverter.cs
- PropertyIDSet.cs
- SortQuery.cs
- UnmanagedMemoryStream.cs
- FileRecordSequenceHelper.cs
- ContourSegment.cs
- ProxyHelper.cs
- SelectorAutomationPeer.cs
- SqlEnums.cs
- DbExpressionVisitor.cs
- xmlfixedPageInfo.cs
- ToolStripMenuItem.cs