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
- PageRanges.cs
- XPathParser.cs
- CodeMethodInvokeExpression.cs
- CompositeCollectionView.cs
- XmlMemberMapping.cs
- MatrixCamera.cs
- SecurityPolicySection.cs
- RangeBase.cs
- FormsAuthenticationCredentials.cs
- ResourcePermissionBase.cs
- AnonymousIdentificationSection.cs
- Transform3DCollection.cs
- SqlTriggerContext.cs
- CacheOutputQuery.cs
- Compiler.cs
- AnnotationComponentManager.cs
- ToolStripDropDownItem.cs
- ErrorWrapper.cs
- FrameworkContentElement.cs
- DesignSurfaceManager.cs
- GradientStop.cs
- DoubleCollectionValueSerializer.cs
- safex509handles.cs
- DynamicScriptObject.cs
- RequestStatusBarUpdateEventArgs.cs
- Size3D.cs
- Vector3DIndependentAnimationStorage.cs
- FrameworkObject.cs
- CryptoKeySecurity.cs
- SizeValueSerializer.cs
- DATA_BLOB.cs
- XmlSchemaInfo.cs
- XmlElementList.cs
- SqlConnectionHelper.cs
- RuntimeIdentifierPropertyAttribute.cs
- DocumentDesigner.cs
- XmlMemberMapping.cs
- TextChange.cs
- InfoCardArgumentException.cs
- ClientBuildManagerCallback.cs
- HTTPNotFoundHandler.cs
- RootProfilePropertySettingsCollection.cs
- DrawingDrawingContext.cs
- XmlSerializationGeneratedCode.cs
- ConnectionManagementElementCollection.cs
- AppSettingsSection.cs
- RoutingChannelExtension.cs
- util.cs
- XmlElement.cs
- BezierSegment.cs
- SQLBytesStorage.cs
- ZipPackage.cs
- CodeEventReferenceExpression.cs
- Exceptions.cs
- PlanCompilerUtil.cs
- QilTypeChecker.cs
- XamlVector3DCollectionSerializer.cs
- DomainConstraint.cs
- CompilerResults.cs
- CommandConverter.cs
- RemoteAsymmetricSignatureFormatter.cs
- ExtendedPropertyInfo.cs
- BehaviorEditorPart.cs
- Schema.cs
- TextSelectionHighlightLayer.cs
- StyleBamlRecordReader.cs
- Directory.cs
- ListItemConverter.cs
- SelectedPathEditor.cs
- MenuScrollingVisibilityConverter.cs
- Guid.cs
- SmtpNegotiateAuthenticationModule.cs
- MarkupCompilePass2.cs
- EdmType.cs
- AttachmentCollection.cs
- XsdBuilder.cs
- HtmlForm.cs
- Rule.cs
- HelpFileFileNameEditor.cs
- DecimalKeyFrameCollection.cs
- RegexMatch.cs
- ContainerParaClient.cs
- IndividualDeviceConfig.cs
- ForeignConstraint.cs
- documentation.cs
- HostedElements.cs
- TableLayout.cs
- Mutex.cs
- ComplexTypeEmitter.cs
- TypeListConverter.cs
- FileRegion.cs
- XPathNodeList.cs
- DesignerVerbToolStripMenuItem.cs
- UIElementCollection.cs
- AutoResetEvent.cs
- ExecutionEngineException.cs
- Random.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- AbstractSvcMapFileLoader.cs
- Renderer.cs