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
- MemberPath.cs
- WebHttpBinding.cs
- SqlCrossApplyToCrossJoin.cs
- TextBoxView.cs
- GridPatternIdentifiers.cs
- GridViewCancelEditEventArgs.cs
- ServiceOperationViewControl.cs
- WebBrowsableAttribute.cs
- ResourcesChangeInfo.cs
- SerializerDescriptor.cs
- TrustManagerPromptUI.cs
- _AutoWebProxyScriptWrapper.cs
- TypefaceMap.cs
- MimeImporter.cs
- Propagator.cs
- KeyboardNavigation.cs
- SHA256CryptoServiceProvider.cs
- EventLogInternal.cs
- OdbcDataReader.cs
- XdrBuilder.cs
- Pair.cs
- PingReply.cs
- validation.cs
- TransformConverter.cs
- SupportsEventValidationAttribute.cs
- ItemsPresenter.cs
- CfgSemanticTag.cs
- ImageCodecInfoPrivate.cs
- nulltextnavigator.cs
- InputMethod.cs
- ErrorHandler.cs
- CollectionDataContractAttribute.cs
- EditableRegion.cs
- Header.cs
- CodeSnippetTypeMember.cs
- TextTrailingWordEllipsis.cs
- QueryReaderSettings.cs
- CharacterString.cs
- TextProperties.cs
- DiscoveryMessageSequence11.cs
- Ref.cs
- WebBrowser.cs
- ProjectionCamera.cs
- IndexOutOfRangeException.cs
- PassportIdentity.cs
- ClientProxyGenerator.cs
- ValueChangedEventManager.cs
- SelectionEditingBehavior.cs
- WebInvokeAttribute.cs
- DependencyPropertyHelper.cs
- ValidationErrorEventArgs.cs
- VisualStyleTypesAndProperties.cs
- XmlSerializableReader.cs
- XhtmlBasicPageAdapter.cs
- TypeUtil.cs
- PtsHelper.cs
- StringUtil.cs
- CqlParserHelpers.cs
- PageContent.cs
- AVElementHelper.cs
- BaseValidator.cs
- ViewCellRelation.cs
- PenLineCapValidation.cs
- CorePropertiesFilter.cs
- NavigationWindow.cs
- DefaultSettingsSection.cs
- ProfileInfo.cs
- DataServices.cs
- TcpAppDomainProtocolHandler.cs
- RadioButtonBaseAdapter.cs
- TextAdaptor.cs
- KeyTimeConverter.cs
- TraceHandler.cs
- DataGridColumnReorderingEventArgs.cs
- InvalidateEvent.cs
- UnsafeNativeMethods.cs
- Currency.cs
- ResourceDictionaryCollection.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- DataServiceHostWrapper.cs
- Package.cs
- ObjectSerializerFactory.cs
- Viewport3DAutomationPeer.cs
- FormViewInsertedEventArgs.cs
- BitSet.cs
- Model3DCollection.cs
- _UriSyntax.cs
- Hyperlink.cs
- BoolExpression.cs
- DropDownList.cs
- WindowsAuthenticationModule.cs
- WindowsRegion.cs
- MaskedTextProvider.cs
- SystemSounds.cs
- MultipleViewProviderWrapper.cs
- SystemColors.cs
- ExpressionBuilderCollection.cs
- XsdBuildProvider.cs
- X509ImageLogo.cs
- GridViewUpdateEventArgs.cs