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
- HMACMD5.cs
- StringOutput.cs
- Int16AnimationUsingKeyFrames.cs
- ZipIOExtraField.cs
- MembershipUser.cs
- SamlSecurityTokenAuthenticator.cs
- SerializationFieldInfo.cs
- XmlILAnnotation.cs
- Translator.cs
- PageContentCollection.cs
- FtpWebRequest.cs
- MissingMemberException.cs
- AttachmentCollection.cs
- TransformProviderWrapper.cs
- Menu.cs
- cryptoapiTransform.cs
- ReflectionServiceProvider.cs
- ReferenceConverter.cs
- HttpModuleActionCollection.cs
- ProtectedConfigurationSection.cs
- QueuePathDialog.cs
- IdentityNotMappedException.cs
- BasicCellRelation.cs
- FileCodeGroup.cs
- CollectionChangedEventManager.cs
- ContentDisposition.cs
- XPathDocument.cs
- FixedPageProcessor.cs
- cookiecollection.cs
- ConstructorNeedsTagAttribute.cs
- smtppermission.cs
- IndexingContentUnit.cs
- SafeBitVector32.cs
- Timer.cs
- TemplateControlParser.cs
- LocalizationComments.cs
- ParameterBinding.cs
- VisualBasicSettingsConverter.cs
- SystemWebCachingSectionGroup.cs
- SchemaImporterExtension.cs
- ControlIdConverter.cs
- TransactionFlowBindingElement.cs
- FileLevelControlBuilderAttribute.cs
- DataRelation.cs
- NonSerializedAttribute.cs
- dbdatarecord.cs
- VisualBrush.cs
- XmlComplianceUtil.cs
- ManipulationLogic.cs
- NavigateEvent.cs
- EdmError.cs
- SynchronizationContext.cs
- HttpStreams.cs
- TraceUtility.cs
- CngProperty.cs
- Point3DCollection.cs
- Mapping.cs
- PrimaryKeyTypeConverter.cs
- EntityDataSourceReferenceGroup.cs
- InfoCardHelper.cs
- isolationinterop.cs
- RemotingServices.cs
- HijriCalendar.cs
- Viewport3DVisual.cs
- CodeSnippetCompileUnit.cs
- JournalEntry.cs
- UnsafeNativeMethods.cs
- TextRunCacheImp.cs
- AutoSizeComboBox.cs
- UTF8Encoding.cs
- RightNameExpirationInfoPair.cs
- ValueProviderWrapper.cs
- XmlAttributeCache.cs
- ActivationArguments.cs
- WebPartUtil.cs
- DataServiceQueryProvider.cs
- DotNetATv1WindowsLogEntrySerializer.cs
- TextPointer.cs
- RtfToXamlReader.cs
- MethodRental.cs
- Token.cs
- RecordManager.cs
- WMIGenerator.cs
- FixedDocument.cs
- VisualTreeUtils.cs
- Int32CollectionValueSerializer.cs
- LocalBuilder.cs
- Properties.cs
- NotCondition.cs
- DataTableReaderListener.cs
- SchemaElementDecl.cs
- PeerInvitationResponse.cs
- RegistrationServices.cs
- ChangeToolStripParentVerb.cs
- UInt16.cs
- CompilerErrorCollection.cs
- Int32AnimationBase.cs
- EditorZone.cs
- GroupItemAutomationPeer.cs
- Privilege.cs