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
- SoapInteropTypes.cs
- MailWebEventProvider.cs
- CreateUserWizard.cs
- RequiredFieldValidator.cs
- TypeResolvingOptionsAttribute.cs
- ToolStripKeyboardHandlingService.cs
- DirectoryObjectSecurity.cs
- CheckBoxList.cs
- RC2CryptoServiceProvider.cs
- Mutex.cs
- TraceHandler.cs
- PolyQuadraticBezierSegment.cs
- ListCommandEventArgs.cs
- xsdvalidator.cs
- RangeValuePatternIdentifiers.cs
- WorkflowMarkupSerializationProvider.cs
- RewritingValidator.cs
- ContextDataSource.cs
- ServiceThrottlingBehavior.cs
- EmptyCollection.cs
- NativeMethods.cs
- Expr.cs
- PeerInvitationResponse.cs
- CustomWebEventKey.cs
- BigInt.cs
- MessageQueueTransaction.cs
- SweepDirectionValidation.cs
- SecurityManager.cs
- TextElementAutomationPeer.cs
- BoundField.cs
- ContentElement.cs
- SafeRightsManagementPubHandle.cs
- WebService.cs
- XmlMapping.cs
- GlyphRun.cs
- TextEndOfSegment.cs
- _NetRes.cs
- RoutingEndpointTrait.cs
- CodeGenerator.cs
- PropertyPath.cs
- WinInetCache.cs
- ResourceDescriptionAttribute.cs
- DecoderFallback.cs
- Bold.cs
- CapabilitiesSection.cs
- MethodBuilderInstantiation.cs
- RowType.cs
- NumberEdit.cs
- EndpointDiscoveryMetadataCD1.cs
- AnimationLayer.cs
- dsa.cs
- FolderLevelBuildProviderAppliesToAttribute.cs
- BrowserDefinition.cs
- AlignmentXValidation.cs
- PriorityItem.cs
- ToolStripDropDownClosedEventArgs.cs
- ProxyHwnd.cs
- FamilyCollection.cs
- ProvidersHelper.cs
- MetabaseServerConfig.cs
- WebPermission.cs
- EntityRecordInfo.cs
- XamlSerializerUtil.cs
- TableLayoutPanelResizeGlyph.cs
- GroupLabel.cs
- HtmlLink.cs
- Registry.cs
- MDIWindowDialog.cs
- PropertyChangedEventArgs.cs
- ImportedPolicyConversionContext.cs
- SqlDeflator.cs
- BoolLiteral.cs
- CopyEncoder.cs
- NumberSubstitution.cs
- SQLInt64Storage.cs
- activationcontext.cs
- XmlSchemaSimpleContentRestriction.cs
- DiscoveryInnerClientManaged11.cs
- CryptographicAttribute.cs
- PersistChildrenAttribute.cs
- NumberSubstitution.cs
- CreateDataSourceDialog.cs
- HashAlgorithm.cs
- TcpChannelListener.cs
- RandomDelayQueuedSendsAsyncResult.cs
- HttpModuleAction.cs
- KeyPressEvent.cs
- TagNameToTypeMapper.cs
- WindowsImpersonationContext.cs
- SamlConditions.cs
- StylusPointPropertyUnit.cs
- TableLayout.cs
- CodeDOMProvider.cs
- BasicExpandProvider.cs
- Vector3DAnimationUsingKeyFrames.cs
- PointCollection.cs
- TextEffect.cs
- EdmSchemaAttribute.cs
- HttpContextWrapper.cs
- SQLUtility.cs