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
- PersonalizationStateInfo.cs
- CellTreeNodeVisitors.cs
- QueueException.cs
- DataViewSettingCollection.cs
- UIElement3D.cs
- CreateRefExpr.cs
- TranslateTransform.cs
- EdmConstants.cs
- Environment.cs
- SafeMILHandle.cs
- LinqDataSourceView.cs
- MenuItemBinding.cs
- GraphicsContainer.cs
- TextEffect.cs
- ImageField.cs
- ExpressionBuilder.cs
- TailCallAnalyzer.cs
- LookupNode.cs
- FilterFactory.cs
- ObjectItemCollection.cs
- NamespaceCollection.cs
- CornerRadius.cs
- EncoderFallback.cs
- WebPartZone.cs
- exports.cs
- LogManagementAsyncResult.cs
- Pick.cs
- DeferredRunTextReference.cs
- Rotation3DKeyFrameCollection.cs
- HyperLinkField.cs
- ColorConvertedBitmapExtension.cs
- PackWebRequestFactory.cs
- ModuleBuilder.cs
- CompiledQuery.cs
- XmlILStorageConverter.cs
- Rotation3DKeyFrameCollection.cs
- LineSegment.cs
- Authorization.cs
- CompiledIdentityConstraint.cs
- RadioButtonDesigner.cs
- CmsInterop.cs
- PlacementWorkspace.cs
- OdbcConnection.cs
- SQLCharsStorage.cs
- StringStorage.cs
- GeneratedView.cs
- DataTableExtensions.cs
- EntityProviderFactory.cs
- _TimerThread.cs
- _NestedMultipleAsyncResult.cs
- Label.cs
- ActivityValidationServices.cs
- TextReader.cs
- BooleanKeyFrameCollection.cs
- RoutedEventHandlerInfo.cs
- TableAdapterManagerNameHandler.cs
- MethodBuilderInstantiation.cs
- SqlNotificationEventArgs.cs
- UInt32Converter.cs
- SessionParameter.cs
- AppModelKnownContentFactory.cs
- CharKeyFrameCollection.cs
- ApplicationTrust.cs
- ScriptManager.cs
- BooleanFunctions.cs
- NativeMethods.cs
- SatelliteContractVersionAttribute.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- VBIdentifierTrimConverter.cs
- DataGridViewTopRowAccessibleObject.cs
- AsyncStreamReader.cs
- ServiceModelTimeSpanValidator.cs
- BevelBitmapEffect.cs
- InputScopeNameConverter.cs
- PerformanceCounterPermissionEntryCollection.cs
- WebPartEventArgs.cs
- TreePrinter.cs
- ArgIterator.cs
- remotingproxy.cs
- DataRowChangeEvent.cs
- DBCSCodePageEncoding.cs
- ExcludePathInfo.cs
- ConfigurationStrings.cs
- FileSecurity.cs
- WebSysDescriptionAttribute.cs
- WebPartMenu.cs
- DesignerDataStoredProcedure.cs
- FormParameter.cs
- ProfilePropertySettings.cs
- PointHitTestParameters.cs
- Win32SafeHandles.cs
- Interlocked.cs
- ClipboardProcessor.cs
- CodeDirectoryCompiler.cs
- COM2PictureConverter.cs
- IdleTimeoutMonitor.cs
- RuleDefinitions.cs
- UnicodeEncoding.cs
- ShaperBuffers.cs
- DragEvent.cs