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
- BindingNavigator.cs
- FilteredAttributeCollection.cs
- LineServices.cs
- HashAlgorithm.cs
- ThicknessKeyFrameCollection.cs
- DataGridViewButtonColumn.cs
- ReadWriteObjectLock.cs
- DispatcherTimer.cs
- FtpCachePolicyElement.cs
- XamlStream.cs
- VirtualPathProvider.cs
- HierarchicalDataTemplate.cs
- GeometryCombineModeValidation.cs
- MetadataException.cs
- DiffuseMaterial.cs
- QilStrConcatenator.cs
- MeshGeometry3D.cs
- WebServiceTypeData.cs
- TraceSource.cs
- Decorator.cs
- DBCommandBuilder.cs
- ControlBuilderAttribute.cs
- ContainerUIElement3D.cs
- ISAPIRuntime.cs
- LicenseContext.cs
- Utils.cs
- ProcessInputEventArgs.cs
- ColorTransform.cs
- TabPage.cs
- UIElementPropertyUndoUnit.cs
- BlockCollection.cs
- StagingAreaInputItem.cs
- MultipleViewPattern.cs
- DataSetMappper.cs
- JsonReaderDelegator.cs
- PeerContact.cs
- SequentialUshortCollection.cs
- OutputScopeManager.cs
- WebMessageEncodingElement.cs
- DBCommand.cs
- TypeDelegator.cs
- ForceCopyBuildProvider.cs
- SelectionUIService.cs
- WmlObjectListAdapter.cs
- ExplicitDiscriminatorMap.cs
- SwitchLevelAttribute.cs
- TextPatternIdentifiers.cs
- CodeValidator.cs
- AmbiguousMatchException.cs
- CodePageUtils.cs
- DeobfuscatingStream.cs
- CacheDependency.cs
- LeaseManager.cs
- DataShape.cs
- XmlStreamStore.cs
- NodeFunctions.cs
- DbInsertCommandTree.cs
- PlaceHolder.cs
- WebConfigurationManager.cs
- DataGridViewRowHeaderCell.cs
- AddInContractAttribute.cs
- HealthMonitoringSectionHelper.cs
- FixedElement.cs
- WindowsEditBox.cs
- FontConverter.cs
- OledbConnectionStringbuilder.cs
- DataKey.cs
- AuthenticationModuleElement.cs
- KnownAssemblyEntry.cs
- FileClassifier.cs
- MatrixCamera.cs
- GridViewRowEventArgs.cs
- SchemaMerger.cs
- BehaviorEditorPart.cs
- XsltInput.cs
- EntityProviderServices.cs
- HostDesigntimeLicenseContext.cs
- Container.cs
- TransformGroup.cs
- MatrixCamera.cs
- IndexerNameAttribute.cs
- XmlPreloadedResolver.cs
- PassportAuthentication.cs
- SimpleApplicationHost.cs
- GestureRecognitionResult.cs
- ManagementQuery.cs
- SchemaCollectionPreprocessor.cs
- ObjectSpanRewriter.cs
- ContextMenuStrip.cs
- ControlAdapter.cs
- DateRangeEvent.cs
- RegexParser.cs
- RadioButtonList.cs
- EncoderExceptionFallback.cs
- DataService.cs
- SettingsBindableAttribute.cs
- AttributeExtensions.cs
- TagPrefixCollection.cs
- HeaderCollection.cs
- Highlights.cs