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
- OperationFormatStyle.cs
- DiagnosticTraceSource.cs
- PropertyGridDesigner.cs
- PropertyGeneratedEventArgs.cs
- SettingsSavedEventArgs.cs
- DebugController.cs
- OdbcConnectionHandle.cs
- TagPrefixInfo.cs
- RtfControls.cs
- PropertyDescriptorCollection.cs
- QueryResponse.cs
- Grant.cs
- XmlEnumAttribute.cs
- MemoryRecordBuffer.cs
- RTTrackingProfile.cs
- XmlAttribute.cs
- PrimitiveSchema.cs
- ToolBar.cs
- GetPageCompletedEventArgs.cs
- sortedlist.cs
- MappingMetadataHelper.cs
- XmlSchemaDatatype.cs
- MimeTypePropertyAttribute.cs
- EntityViewGenerator.cs
- InteropEnvironment.cs
- MimeFormatExtensions.cs
- SequentialUshortCollection.cs
- EntityContainerAssociationSetEnd.cs
- StyleSelector.cs
- FastEncoder.cs
- RequestCacheEntry.cs
- XXXInfos.cs
- InvalidPrinterException.cs
- HScrollBar.cs
- ScaleTransform.cs
- FontStretch.cs
- TextContainerChangedEventArgs.cs
- LinkButton.cs
- RuntimeHelpers.cs
- DtdParser.cs
- CacheChildrenQuery.cs
- Ipv6Element.cs
- TableParaClient.cs
- ObjectComplexPropertyMapping.cs
- PatternMatcher.cs
- NativeWindow.cs
- InfoCardKeyedHashAlgorithm.cs
- PaintEvent.cs
- MainMenu.cs
- AlphaSortedEnumConverter.cs
- DataView.cs
- ToolStripItemImageRenderEventArgs.cs
- FileUpload.cs
- WindowsTreeView.cs
- Sql8ConformanceChecker.cs
- CompModSwitches.cs
- HierarchicalDataBoundControlAdapter.cs
- CharacterString.cs
- RTTypeWrapper.cs
- SafePEFileHandle.cs
- TextServicesPropertyRanges.cs
- FilterQuery.cs
- FileResponseElement.cs
- ExpressionParser.cs
- FixedPageProcessor.cs
- FrameworkContextData.cs
- MetafileHeaderWmf.cs
- Scene3D.cs
- UniqueID.cs
- PropertySourceInfo.cs
- TrackingProfileSerializer.cs
- Object.cs
- DataGridViewColumnConverter.cs
- DataGridAddNewRow.cs
- Module.cs
- DragCompletedEventArgs.cs
- CultureTableRecord.cs
- TemplateComponentConnector.cs
- SessionEndedEventArgs.cs
- PageHandlerFactory.cs
- _SslStream.cs
- MemoryRecordBuffer.cs
- CompiledRegexRunner.cs
- DataGridAutomationPeer.cs
- Char.cs
- XPathException.cs
- Rectangle.cs
- TransactionChannelFaultConverter.cs
- ACE.cs
- DispatchChannelSink.cs
- RtfToXamlLexer.cs
- SchemaCreator.cs
- WmlTextViewAdapter.cs
- MenuItemAutomationPeer.cs
- COM2IManagedPerPropertyBrowsingHandler.cs
- WorkItem.cs
- Predicate.cs
- NativeMethods.cs
- BinaryNegotiation.cs
- SoundPlayerAction.cs