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
- SettingsPropertyWrongTypeException.cs
- ITreeGenerator.cs
- WebConfigurationManager.cs
- ReadOnlyDictionary.cs
- ValidationSettings.cs
- TableProviderWrapper.cs
- TextRangeAdaptor.cs
- SqlDuplicator.cs
- CompilationUnit.cs
- WindowsSolidBrush.cs
- WebServicesDescriptionAttribute.cs
- OdbcConnectionOpen.cs
- EntityCommand.cs
- InstanceStore.cs
- DXD.cs
- RadioButton.cs
- DashStyle.cs
- MouseGestureConverter.cs
- SimpleBitVector32.cs
- XmlSerializerAssemblyAttribute.cs
- Maps.cs
- MTConfigUtil.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- EventDriven.cs
- ISAPIWorkerRequest.cs
- MetadataArtifactLoaderResource.cs
- DeclaredTypeValidator.cs
- Clause.cs
- ModelTypeConverter.cs
- CursorConverter.cs
- StaticTextPointer.cs
- InvalidComObjectException.cs
- WebPartEditorOkVerb.cs
- XmlSchemaIdentityConstraint.cs
- XmlComment.cs
- ConsumerConnectionPointCollection.cs
- TemplateControlCodeDomTreeGenerator.cs
- SessionIDManager.cs
- WebBrowserSiteBase.cs
- HttpServerProtocol.cs
- SecurityPermission.cs
- XmlTextReaderImpl.cs
- XamlToRtfWriter.cs
- WindowsUpDown.cs
- DocumentOrderQuery.cs
- SQLMoney.cs
- StylusCollection.cs
- OdbcConnection.cs
- CultureInfo.cs
- PersistenceTypeAttribute.cs
- SystemSounds.cs
- ConstructorExpr.cs
- SqlConnectionString.cs
- AnnotationService.cs
- ButtonChrome.cs
- EntityCollectionChangedParams.cs
- UpdateCompiler.cs
- EdmItemError.cs
- LayoutTableCell.cs
- BitConverter.cs
- WebPartDescriptionCollection.cs
- SafeHGlobalHandleCritical.cs
- MimeXmlImporter.cs
- SecurityException.cs
- XmlSchemaSimpleType.cs
- NavigatingCancelEventArgs.cs
- RecordManager.cs
- ThumbAutomationPeer.cs
- StaticExtension.cs
- PageParser.cs
- Journaling.cs
- DateTimeConverter2.cs
- RangeValueProviderWrapper.cs
- LogArchiveSnapshot.cs
- ExtendedProtectionPolicyTypeConverter.cs
- GlyphInfoList.cs
- ConfigurationValue.cs
- Trigger.cs
- Point3D.cs
- RawStylusInputCustomDataList.cs
- ObjectDataSourceDisposingEventArgs.cs
- BackStopAuthenticationModule.cs
- WsatServiceAddress.cs
- WindowsNonControl.cs
- ReferencedCategoriesDocument.cs
- RTLAwareMessageBox.cs
- ImageMap.cs
- RepeaterItemEventArgs.cs
- DocumentReferenceCollection.cs
- SrgsElement.cs
- ShapeTypeface.cs
- PageContent.cs
- PanelDesigner.cs
- ThicknessAnimation.cs
- UnknownBitmapDecoder.cs
- DispatcherExceptionEventArgs.cs
- DataGridViewCellStyleConverter.cs
- CompiledIdentityConstraint.cs
- TextMarkerSource.cs
- AsymmetricSignatureFormatter.cs