Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / XamlBuildTask / Microsoft / Build / Tasks / Xaml / NamespaceTable.cs / 1305376 / NamespaceTable.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xaml; namespace Microsoft.Build.Tasks.Xaml { internal class NamespaceTable : IXamlNamespaceResolver { DictionarytempNamespaceList = new Dictionary (); Stack > namespaceStack = new Stack >(); string localAssemblyName; public NamespaceTable(string localAssemblyName) { this.localAssemblyName = localAssemblyName; } public IEnumerable GetNamespacePrefixes() { List list = new List (); HashSet prefixSet = new HashSet (); if (tempNamespaceList != null && tempNamespaceList.Count > 0) { foreach (NamespaceDeclaration ns in tempNamespaceList.Values) { if (!prefixSet.Contains(ns.Prefix)) { prefixSet.Add(ns.Prefix); list.Add(ns); } } } foreach (Dictionary currentNamespaces in this.namespaceStack) { foreach (NamespaceDeclaration ns in currentNamespaces.Values) { if (!prefixSet.Contains(ns.Prefix)) { prefixSet.Add(ns.Prefix); list.Add(ns); } } } return list; } public string GetNamespace(string prefix) { NamespaceDeclaration @namespace = null; foreach (Dictionary currentNamespaces in this.namespaceStack) { if (null != currentNamespaces && currentNamespaces.TryGetValue(prefix, out @namespace)) { return @namespace.Namespace; } } if (tempNamespaceList != null && tempNamespaceList.TryGetValue(prefix, out @namespace)) { return @namespace.Namespace; } return @namespace.Namespace; } public void ManageNamespace(XamlReader reader) { switch (reader.NodeType) { case XamlNodeType.NamespaceDeclaration: tempNamespaceList.Add(reader.Namespace.Prefix, new NamespaceDeclaration( XamlBuildTaskServices.UpdateClrNamespaceUriWithLocalAssembly(reader.Namespace.Namespace, this.localAssemblyName), reader.Namespace.Prefix)); break; case XamlNodeType.StartObject: case XamlNodeType.StartMember: case XamlNodeType.GetObject: if (tempNamespaceList != null) { namespaceStack.Push(tempNamespaceList); tempNamespaceList = new Dictionary (); } break; case XamlNodeType.EndMember: case XamlNodeType.EndObject: namespaceStack.Pop(); break; default: break; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xaml; namespace Microsoft.Build.Tasks.Xaml { internal class NamespaceTable : IXamlNamespaceResolver { Dictionary tempNamespaceList = new Dictionary (); Stack > namespaceStack = new Stack >(); string localAssemblyName; public NamespaceTable(string localAssemblyName) { this.localAssemblyName = localAssemblyName; } public IEnumerable GetNamespacePrefixes() { List list = new List (); HashSet prefixSet = new HashSet (); if (tempNamespaceList != null && tempNamespaceList.Count > 0) { foreach (NamespaceDeclaration ns in tempNamespaceList.Values) { if (!prefixSet.Contains(ns.Prefix)) { prefixSet.Add(ns.Prefix); list.Add(ns); } } } foreach (Dictionary currentNamespaces in this.namespaceStack) { foreach (NamespaceDeclaration ns in currentNamespaces.Values) { if (!prefixSet.Contains(ns.Prefix)) { prefixSet.Add(ns.Prefix); list.Add(ns); } } } return list; } public string GetNamespace(string prefix) { NamespaceDeclaration @namespace = null; foreach (Dictionary currentNamespaces in this.namespaceStack) { if (null != currentNamespaces && currentNamespaces.TryGetValue(prefix, out @namespace)) { return @namespace.Namespace; } } if (tempNamespaceList != null && tempNamespaceList.TryGetValue(prefix, out @namespace)) { return @namespace.Namespace; } return @namespace.Namespace; } public void ManageNamespace(XamlReader reader) { switch (reader.NodeType) { case XamlNodeType.NamespaceDeclaration: tempNamespaceList.Add(reader.Namespace.Prefix, new NamespaceDeclaration( XamlBuildTaskServices.UpdateClrNamespaceUriWithLocalAssembly(reader.Namespace.Namespace, this.localAssemblyName), reader.Namespace.Prefix)); break; case XamlNodeType.StartObject: case XamlNodeType.StartMember: case XamlNodeType.GetObject: if (tempNamespaceList != null) { namespaceStack.Push(tempNamespaceList); tempNamespaceList = new Dictionary (); } break; case XamlNodeType.EndMember: case XamlNodeType.EndObject: namespaceStack.Pop(); break; default: break; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SafeArrayRankMismatchException.cs
- XPathSelfQuery.cs
- _HeaderInfoTable.cs
- AnalyzedTree.cs
- ConfigPathUtility.cs
- DrawTreeNodeEventArgs.cs
- SystemIPv4InterfaceProperties.cs
- MenuItem.cs
- Module.cs
- RuleProcessor.cs
- SafeNativeMethods.cs
- SelectingProviderEventArgs.cs
- WebPartDeleteVerb.cs
- XmlLanguageConverter.cs
- Invariant.cs
- FacetValueContainer.cs
- SqlResolver.cs
- MSAAEventDispatcher.cs
- Int64Storage.cs
- ClientBuildManagerCallback.cs
- Int16.cs
- streamingZipPartStream.cs
- Cursors.cs
- DataViewListener.cs
- DoubleAnimationBase.cs
- SmiMetaDataProperty.cs
- XmlValidatingReader.cs
- RegistrySecurity.cs
- ContainerAction.cs
- Expander.cs
- UnionExpr.cs
- ImageInfo.cs
- FastEncoder.cs
- ObjectViewQueryResultData.cs
- FixUpCollection.cs
- ProfileSettings.cs
- XmlDigitalSignatureProcessor.cs
- ClientScriptManager.cs
- X509WindowsSecurityToken.cs
- ListSortDescriptionCollection.cs
- Subtree.cs
- TextRunCache.cs
- EntityDataSource.cs
- TypeForwardedToAttribute.cs
- ControlPersister.cs
- CommonGetThemePartSize.cs
- DataGridView.cs
- IntSecurity.cs
- StateItem.cs
- SafeLocalAllocation.cs
- DragDeltaEventArgs.cs
- Screen.cs
- Interfaces.cs
- Encoding.cs
- CertificateReferenceElement.cs
- InfoCardRSACryptoProvider.cs
- ResourceContainer.cs
- InvokePattern.cs
- CategoryGridEntry.cs
- FileLevelControlBuilderAttribute.cs
- Resources.Designer.cs
- ThreadInterruptedException.cs
- _TLSstream.cs
- CommonServiceBehaviorElement.cs
- SyncMethodInvoker.cs
- ProcessProtocolHandler.cs
- WSHttpBindingElement.cs
- CodeNamespaceImport.cs
- AuthenticationModeHelper.cs
- WindowsFormsHost.cs
- SqlTrackingQuery.cs
- BreakRecordTable.cs
- CmsInterop.cs
- CodeRemoveEventStatement.cs
- ProviderSettingsCollection.cs
- PersistenceTask.cs
- HealthMonitoringSection.cs
- NumberFormatter.cs
- WebPartZoneCollection.cs
- UserInitiatedNavigationPermission.cs
- fixedPageContentExtractor.cs
- NavigationHelper.cs
- ReplyAdapterChannelListener.cs
- Propagator.JoinPropagator.cs
- Debug.cs
- TimeSpanValidator.cs
- AccessibleObject.cs
- DataBindingCollection.cs
- Roles.cs
- LiteralDesigner.cs
- DurationConverter.cs
- DbLambda.cs
- CallbackTimeoutsElement.cs
- _DomainName.cs
- ToolBarButtonDesigner.cs
- ConnectionManagementElement.cs
- GB18030Encoding.cs
- XpsThumbnail.cs
- FrameworkElementAutomationPeer.cs
- ResXFileRef.cs