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
- DesignerTextViewAdapter.cs
- HuffModule.cs
- KeyValueConfigurationCollection.cs
- XmlToDatasetMap.cs
- SettingsPropertyNotFoundException.cs
- RegexInterpreter.cs
- messageonlyhwndwrapper.cs
- EntityViewGenerator.cs
- NamespaceDecl.cs
- WindowsStreamSecurityElement.cs
- AppearanceEditorPart.cs
- DirectoryGroupQuery.cs
- UpdatePanelTrigger.cs
- RuleAttributes.cs
- ActiveDocumentEvent.cs
- SerialErrors.cs
- ListBox.cs
- SectionVisual.cs
- FloaterBaseParaClient.cs
- wpf-etw.cs
- TextContainerChangeEventArgs.cs
- DataGridViewRowPostPaintEventArgs.cs
- ComponentChangedEvent.cs
- XmlExtensionFunction.cs
- TransactionChannelFactory.cs
- AppDomainProtocolHandler.cs
- CodeConditionStatement.cs
- ConfigurationConverterBase.cs
- InputProcessorProfiles.cs
- WsatAdminException.cs
- WorkflowHostingResponseContext.cs
- EncodingNLS.cs
- DataGridRelationshipRow.cs
- AppSettingsExpressionBuilder.cs
- GPPOINTF.cs
- SqlCommand.cs
- PartitionResolver.cs
- PerspectiveCamera.cs
- Event.cs
- OleTxTransaction.cs
- ELinqQueryState.cs
- OracleInfoMessageEventArgs.cs
- TemplateModeChangedEventArgs.cs
- FileLogRecord.cs
- FacetEnabledSchemaElement.cs
- ButtonBaseAutomationPeer.cs
- RegionInfo.cs
- ISFClipboardData.cs
- InitializingNewItemEventArgs.cs
- RuntimeEnvironment.cs
- Int32Collection.cs
- X509Certificate2Collection.cs
- TreeNodeClickEventArgs.cs
- SByteStorage.cs
- FileSystemWatcher.cs
- TypeInfo.cs
- SpeakProgressEventArgs.cs
- FileDialog.cs
- SignatureDescription.cs
- InertiaRotationBehavior.cs
- DataGridState.cs
- DtdParser.cs
- XmlSortKey.cs
- RegistrationServices.cs
- NameTable.cs
- ServiceMemoryGates.cs
- ObjectMemberMapping.cs
- UnsafeNativeMethods.cs
- ZipPackagePart.cs
- MenuItem.cs
- D3DImage.cs
- PowerModeChangedEventArgs.cs
- SQLByte.cs
- EnterpriseServicesHelper.cs
- AccessedThroughPropertyAttribute.cs
- LockRenewalTask.cs
- RuntimeConfig.cs
- Rfc2898DeriveBytes.cs
- OperandQuery.cs
- ClockController.cs
- SkipQueryOptionExpression.cs
- AssemblyNameProxy.cs
- __Error.cs
- ConnectionStringsExpressionEditor.cs
- DataControlReferenceCollection.cs
- DataControlCommands.cs
- FigureParaClient.cs
- MsmqOutputMessage.cs
- TransactionChannel.cs
- ReflectTypeDescriptionProvider.cs
- JsonDeserializer.cs
- ScriptReferenceBase.cs
- ObjectDataSourceDesigner.cs
- FlowLayoutPanelDesigner.cs
- StringUtil.cs
- KeyTimeConverter.cs
- XmlSchemaAppInfo.cs
- Stream.cs
- ScrollChrome.cs
- CachedTypeface.cs