Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Runtime / MappableObjectManager.cs / 1305376 / MappableObjectManager.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities.Runtime { using System.Activities.Hosting; using System.Collections.Generic; using System.Globalization; using System.Runtime; using System.Runtime.Serialization; using System.Xml.Linq; [DataContract] class MappableObjectManager { [DataMember(EmitDefaultValue = false)] ListmappableLocations; public MappableObjectManager() { } public int Count { get { int result = 0; if (this.mappableLocations != null) { result += this.mappableLocations.Count; } return result; } } public IDictionary GatherMappableVariables() { Dictionary result = null; if (this.mappableLocations != null && this.mappableLocations.Count > 0) { result = new Dictionary (this.mappableLocations.Count); for (int locationIndex = 0; locationIndex < this.mappableLocations.Count; locationIndex++) { MappableLocation mappableLocation = this.mappableLocations[locationIndex]; result.Add(mappableLocation.MappingKeyName, new LocationInfo(mappableLocation.Name, mappableLocation.OwnerDisplayName, mappableLocation.Location.Value)); } } return result; } public void Register(Location location, Activity activity, LocationReference locationOwner, ActivityInstance activityInstance) { Fx.Assert(location.CanBeMapped, "should only register mappable locations"); if (this.mappableLocations == null) { this.mappableLocations = new List (); } this.mappableLocations.Add(new MappableLocation(locationOwner, activity, activityInstance, location)); } public void Unregister(Location location) { Fx.Assert(location.CanBeMapped, "should only register mappable locations"); int mappedLocationsCount = this.mappableLocations.Count; for (int i = 0; i < mappedLocationsCount; i++) { if (object.ReferenceEquals(this.mappableLocations[i].Location, location)) { this.mappableLocations.RemoveAt(i); break; } } Fx.Assert(this.mappableLocations.Count == mappedLocationsCount - 1, "can only unregister locations that have been registered"); } [DataContract] class MappableLocation { public MappableLocation(LocationReference locationOwner, Activity activity, ActivityInstance activityInstance, Location location) { this.Name = locationOwner.Name; this.OwnerDisplayName = activity.DisplayName; this.Location = location; this.MappingKeyName = string.Format(CultureInfo.InvariantCulture, "activity.{0}-{1}_{2}", activity.Id, locationOwner.Id, activityInstance.Id); } [DataMember] internal string MappingKeyName { get; private set; } [DataMember] public string Name { get; private set; } [DataMember(EmitDefaultValue = false)] public string OwnerDisplayName { get; private set; } [DataMember] internal Location Location { get; private set; } } } } // 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
- AppModelKnownContentFactory.cs
- NaturalLanguageHyphenator.cs
- IFlowDocumentViewer.cs
- MemberCollection.cs
- WindowsMenu.cs
- IdentityNotMappedException.cs
- UrlMappingsModule.cs
- ScrollEventArgs.cs
- BindableTemplateBuilder.cs
- RoutedEvent.cs
- FragmentQueryProcessor.cs
- UserControlAutomationPeer.cs
- PriorityBindingExpression.cs
- FormViewInsertedEventArgs.cs
- XmlSchemaImporter.cs
- Logging.cs
- VariantWrapper.cs
- ProgressBar.cs
- SoapObjectWriter.cs
- ResourceExpressionBuilder.cs
- CachedCompositeFamily.cs
- SelectionPatternIdentifiers.cs
- SemanticAnalyzer.cs
- XhtmlStyleClass.cs
- _FtpControlStream.cs
- ArraySortHelper.cs
- HitTestWithGeometryDrawingContextWalker.cs
- TextAutomationPeer.cs
- JournalNavigationScope.cs
- Rfc4050KeyFormatter.cs
- UseLicense.cs
- Comparer.cs
- CallbackException.cs
- GlobalDataBindingHandler.cs
- InputReportEventArgs.cs
- DocumentXPathNavigator.cs
- TreeViewDataItemAutomationPeer.cs
- MdiWindowListStrip.cs
- CreateUserWizardStep.cs
- SoapHeader.cs
- BaseCollection.cs
- PasswordPropertyTextAttribute.cs
- TypefaceMetricsCache.cs
- followingsibling.cs
- XmlSchemaSearchPattern.cs
- PartialCachingControl.cs
- RouteCollection.cs
- DomNameTable.cs
- Run.cs
- ZipIOCentralDirectoryFileHeader.cs
- EntityCommandDefinition.cs
- SHA384Managed.cs
- XslVisitor.cs
- SQLCharsStorage.cs
- NullExtension.cs
- XmlNavigatorFilter.cs
- AuthStoreRoleProvider.cs
- wgx_exports.cs
- WindowsTab.cs
- EntityProviderServices.cs
- DoubleLinkList.cs
- WebPartZoneCollection.cs
- HelpEvent.cs
- FontCollection.cs
- HexParser.cs
- PrinterUnitConvert.cs
- SafeFileMappingHandle.cs
- WriterOutput.cs
- CheckBoxBaseAdapter.cs
- RemoteWebConfigurationHost.cs
- ArgumentNullException.cs
- Translator.cs
- InvalidCastException.cs
- ConfigurationPermission.cs
- WebBrowserUriTypeConverter.cs
- MyContact.cs
- GlobalAclOperationRequirement.cs
- ClaimTypeElement.cs
- TabletCollection.cs
- OdbcFactory.cs
- DataGridViewTextBoxCell.cs
- PropertyMappingExceptionEventArgs.cs
- RuntimeConfig.cs
- View.cs
- SaveWorkflowCommand.cs
- RichTextBox.cs
- LinqToSqlWrapper.cs
- LowerCaseStringConverter.cs
- Expressions.cs
- AVElementHelper.cs
- SelectedCellsCollection.cs
- XmlSchemaValidationException.cs
- LZCodec.cs
- Identity.cs
- SqlRowUpdatingEvent.cs
- PhonemeConverter.cs
- ComponentResourceManager.cs
- CodeTypeDeclarationCollection.cs
- WebProxyScriptElement.cs
- FrameAutomationPeer.cs