Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / XamlIntegration / NamespaceTable.cs / 1305376 / NamespaceTable.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities.XamlIntegration { using System.Collections.Generic; using System.Xaml; class NamespaceTable : IXamlNamespaceResolver { ListtempNamespaceList; Stack > namespaceStack; Dictionary
namespacesCache; public NamespaceTable() { this.tempNamespaceList = new List (); this.namespaceStack = new Stack >(); } public string GetNamespace(string prefix) { NamespaceDeclaration result; if (this.namespacesCache == null) { ConstructNamespaceCache(); } if (this.namespacesCache.TryGetValue(prefix, out result)) { return result.Namespace; } else { return null; } } public void ManageNamespace(XamlReader reader) { switch (reader.NodeType) { case XamlNodeType.NamespaceDeclaration: AddNamespace(reader.Namespace); break; case XamlNodeType.StartObject: case XamlNodeType.StartMember: case XamlNodeType.GetObject: EnterScope(); break; case XamlNodeType.EndMember: case XamlNodeType.EndObject: ExitScope(); break; } } public void AddNamespace(NamespaceDeclaration xamlNamespace) { this.tempNamespaceList.Add(xamlNamespace); this.namespacesCache = null; } public void EnterScope() { if (this.tempNamespaceList != null) { this.namespaceStack.Push(this.tempNamespaceList); this.tempNamespaceList = new List
(); } } public void ExitScope() { List namespaceList = this.namespaceStack.Pop(); if (namespaceList.Count != 0) { this.namespacesCache = null; } } public IEnumerable GetNamespacePrefixes() { if (this.namespacesCache == null) { ConstructNamespaceCache(); } return this.namespacesCache.Values; } void ConstructNamespaceCache() { Dictionary localNamespaces = new Dictionary (); if (this.tempNamespaceList != null && this.tempNamespaceList.Count > 0) { foreach (NamespaceDeclaration tempNamespace in tempNamespaceList) { if (!localNamespaces.ContainsKey(tempNamespace.Prefix)) { localNamespaces.Add(tempNamespace.Prefix, tempNamespace); } } } foreach (List currentNamespaces in this.namespaceStack) { foreach (NamespaceDeclaration currentNamespace in currentNamespaces) { if (!localNamespaces.ContainsKey(currentNamespace.Prefix)) { localNamespaces.Add(currentNamespace.Prefix, currentNamespace); } } } this.namespacesCache = localNamespaces; } } } // 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
- PointAnimation.cs
- ComponentDispatcher.cs
- Executor.cs
- DbCommandTree.cs
- X509Certificate.cs
- Debug.cs
- VoiceInfo.cs
- ThreadStateException.cs
- Visual3DCollection.cs
- RedirectionProxy.cs
- FlowDocumentPaginator.cs
- DataSourceSelectArguments.cs
- OutputCacheModule.cs
- ValueType.cs
- XPathEmptyIterator.cs
- TimeSpanSecondsConverter.cs
- EventEntry.cs
- UpdatePanelControlTrigger.cs
- LinearQuaternionKeyFrame.cs
- DataServiceProcessingPipelineEventArgs.cs
- SchemaElement.cs
- BeginGetFileNameFromUserRequest.cs
- OlePropertyStructs.cs
- HttpServerVarsCollection.cs
- PagesSection.cs
- LabelEditEvent.cs
- HtmlElementEventArgs.cs
- ValueChangedEventManager.cs
- ObjectStorage.cs
- SerTrace.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- ProfileService.cs
- WebControlsSection.cs
- ImmutableObjectAttribute.cs
- CompleteWizardStep.cs
- EmptyEnumerator.cs
- WebPartsPersonalization.cs
- ProcessDesigner.cs
- SortedList.cs
- UserControlBuildProvider.cs
- UIAgentMonitorHandle.cs
- QilList.cs
- UnmanagedMemoryStream.cs
- RadialGradientBrush.cs
- ArglessEventHandlerProxy.cs
- ReferencedAssembly.cs
- CheckedPointers.cs
- DynamicPropertyHolder.cs
- WebPartConnectionsDisconnectVerb.cs
- WebSysDefaultValueAttribute.cs
- CqlWriter.cs
- activationcontext.cs
- CriticalExceptions.cs
- NavigatorInput.cs
- odbcmetadatacolumnnames.cs
- Script.cs
- EraserBehavior.cs
- SqlTransaction.cs
- JavaScriptObjectDeserializer.cs
- Logging.cs
- ImageMap.cs
- TagMapCollection.cs
- EncryptedPackage.cs
- ProgressBar.cs
- WmlTextViewAdapter.cs
- DataGridViewCellValidatingEventArgs.cs
- ModelItemExtensions.cs
- ItemList.cs
- ListSortDescription.cs
- CrossSiteScriptingValidation.cs
- X509ChainPolicy.cs
- MachineKeySection.cs
- BoundPropertyEntry.cs
- __FastResourceComparer.cs
- Mapping.cs
- Int16Storage.cs
- SystemColorTracker.cs
- ContainerAction.cs
- Expression.cs
- RequestCacheManager.cs
- StaticSiteMapProvider.cs
- SafeNativeMethods.cs
- StringSource.cs
- TextEditorSelection.cs
- ListViewItemSelectionChangedEvent.cs
- RenderingBiasValidation.cs
- GatewayDefinition.cs
- Dump.cs
- Membership.cs
- Span.cs
- TemplateColumn.cs
- NavigationPropertyAccessor.cs
- SizeValueSerializer.cs
- KeyEvent.cs
- WebPartManagerInternals.cs
- EndOfStreamException.cs
- FontUnit.cs
- dbenumerator.cs
- ProfileService.cs
- MultiPageTextView.cs