Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ActivityExecutorSurrogate.cs
- HtmlTableRowCollection.cs
- sqlpipe.cs
- CompilerParameters.cs
- HandleRef.cs
- filewebrequest.cs
- MetadataPropertyAttribute.cs
- SettingsSavedEventArgs.cs
- VirtualDirectoryMapping.cs
- NeutralResourcesLanguageAttribute.cs
- SafeRightsManagementPubHandle.cs
- Classification.cs
- PartitionerQueryOperator.cs
- MenuItemBinding.cs
- GridViewSortEventArgs.cs
- XmlCharType.cs
- BitmapSizeOptions.cs
- FlowDocumentScrollViewer.cs
- XmlEntity.cs
- SQLMembershipProvider.cs
- LayoutUtils.cs
- GcHandle.cs
- Version.cs
- DesignerSelectionListAdapter.cs
- WebPartsSection.cs
- ListViewGroupConverter.cs
- UncommonField.cs
- JulianCalendar.cs
- PlatformCulture.cs
- ParserStreamGeometryContext.cs
- TableTextElementCollectionInternal.cs
- EventHandlerList.cs
- ManagementPath.cs
- OdbcDataAdapter.cs
- Knowncolors.cs
- ScrollProperties.cs
- NameValuePermission.cs
- SecureStringHasher.cs
- WebPartUserCapability.cs
- TagMapInfo.cs
- NativeCompoundFileAPIs.cs
- TdsValueSetter.cs
- HtmlInputCheckBox.cs
- XpsS0ValidatingLoader.cs
- ServiceReference.cs
- AssemblyInfo.cs
- BuildProviderAppliesToAttribute.cs
- Utils.cs
- XmlStreamStore.cs
- DesignerView.cs
- DomainConstraint.cs
- ResourceProperty.cs
- securitycriticaldataClass.cs
- CustomCredentialPolicy.cs
- SharedUtils.cs
- WebMessageFormatHelper.cs
- TokenBasedSetEnumerator.cs
- TemplateColumn.cs
- FontDialog.cs
- FormatStringEditor.cs
- LineServicesRun.cs
- TraceListener.cs
- OleDbDataReader.cs
- PresentationTraceSources.cs
- ValidationRuleCollection.cs
- RootBuilder.cs
- RNGCryptoServiceProvider.cs
- ReachUIElementCollectionSerializerAsync.cs
- HandlerBase.cs
- MetadataExchangeClient.cs
- WorkflowView.cs
- bindurihelper.cs
- ApplicationProxyInternal.cs
- CaseStatement.cs
- DocumentViewerBase.cs
- SmtpReplyReader.cs
- WebUtil.cs
- SafeBitVector32.cs
- RegexCompiler.cs
- PathStreamGeometryContext.cs
- CustomErrorCollection.cs
- DataTableCollection.cs
- TextWriter.cs
- ConnectionStringsExpressionBuilder.cs
- NameNode.cs
- IntSumAggregationOperator.cs
- ProfilePropertyNameValidator.cs
- SpotLight.cs
- DataSourceControl.cs
- SpecialFolderEnumConverter.cs
- CommonDialog.cs
- PanelDesigner.cs
- ArgumentNullException.cs
- WorkflowViewService.cs
- ContextMenuStrip.cs
- VarRemapper.cs
- ListView.cs
- TextServicesContext.cs
- BuildProvider.cs
- ContextDataSourceContextData.cs